// opcode 74 - poly text8 /** * @see <a href="XDrawText.html">XDrawText</a> */ public void poly_text(GC gc, int x, int y, Text [] texts) { Request request = new Request(display, 74, 4 + Data.unit(length(texts, 8))); request.write4(id); request.write4(gc.id); request.write2(x); request.write2(y); for (int i = 0; i < texts.Length; i++) { if (texts [i].font != null) { request.write1(255); // font-shift indicator request.write4(texts [i].font.id); // java = MSB } request.write1(texts [i].s.Length); request.write1(texts [i].delta); request.write1(texts [i].s); } display.send_request(request); }
/** * @see <a href="XOpenDisplay.html">XOpenDisplay</a> */ public Display(String hostname, int display_no, int screen_no) { default_screen_no = screen_no; connection = new Connection(this, hostname, display_no); // authorization protocol String auth_name = ""; String auth_data = ""; int n = Data.len(auth_name); int d = Data.len(auth_data); Request request = new Request(this, 'B', // java = MSB 3 + Data.unit(auth_name) + Data.unit(auth_data)); request.index = 2; // connection setup request hack request.write2(11); // major version request.write2(0); // minor version request.write2(auth_name.Length); request.write2(auth_data.Length); request.write1(auth_name); request.write1(auth_data); init_server_info(read_reply(request)); init_defaults(); init_big_request_extension(); }
// opcode 109 - change hosts /** * @param mode valid: * {@link #INSERT}, * {@link #DELETE} * * @see <a href="XAddHost.html">XAddHost</a> * @see <a href="XRemoveHost.html">XRemoveHost</a> */ public void change_hosts(int mode, int family, byte [] host) { Request request = new Request(this, 109, mode, 2 + Data.unit(host)); request.write1(family); request.write1_unused(); request.write2(host.Length); request.write1(host); send_request(request); }
// opcode 31 - grab keyboard /** * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param time possible: {@link Display#CURRENT_TIME} * * @return valid: * {@link #SUCCESS}, * {@link #ALREADY_GRABBED}, * {@link #FROZEN}, * {@link #INVALID_TIME}, * {@link #NOT_VIEWABLE} * * @see <a href="XGrabKeyboard.html">XGrabKeyboard</a> */ public int grab_keyboard (bool owner_events, int pointer_mode, int keyboard_mode, int time) { Request request = new Request (display, 31, owner_events, 4); request.write4 (id); request.write4 (time); request.write1 (pointer_mode); request.write1 (keyboard_mode); return display.read_reply (request).read1 (1); }
// opcode 107 - set screen saver /** * @param prefer_blanking valid: * {@link #NO}, * {@link #YES}, * {@link #DEFAULT} * * @param allow_exposures valid: * {@link #NO}, * {@link #YES}, * {@link #DEFAULT} * * @see <a href="XSetScreenSaver.html">XSetScreenSaver</a> */ public void set_screen_saver(int timeout, int interval, int prefer_blanking, int allow_exposures) { Request request = new Request(this, 107, 3); request.write2(timeout); request.write2(interval); request.write1(prefer_blanking); request.write1(allow_exposures); send_request(request); }
//throws NotFoundException { // dbe opcode 0 - get version public DBE(gnu.x11.Display display) : base(display, "DOUBLE-BUFFER", MINOR_OPCODE_STRINGS, 1, 0) { // check version before any other operations Request request = new Request (display, major_opcode, 0, 2); request.write1 (CLIENT_MAJOR_VERSION); request.write1 (CLIENT_MINOR_VERSION); Data reply = display.read_reply (request); server_major_version = reply.read1 (8); server_minor_version = reply.read1 (9); }
// opcode 33 - grab key /** * @param modifiers possible: {@link #ANY_MODIFIER} * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @see <a href="XGrabKey.html">XGrabKey</a> */ public void grab_key (int keysym, int modifiers, bool owner_events, int pointer_mode, int keyboard_mode) { int keycode = display.input.keysym_to_keycode (keysym); Request request = new Request (display, 33, owner_events, 4); request.write4 (id); request.write2 (modifiers); request.write1 (keycode); request.write1 (pointer_mode); request.write1 (keyboard_mode); display.send_request (request); }
// opcode 105 - change pointer control /** * @see <a href="XChangePointerControl.html">XChangePointerControl</a> */ public void change_pointer_control(bool do_accel, bool do_threshold, int accel_numerator, int accel_denominator, int threshold) { Request request = new Request(display, 105, 3); request.write2(accel_numerator); request.write2(accel_denominator); request.write2(threshold); request.write1(do_accel); request.write1(do_threshold); display.send_request(request); }
// opcode 26 - grab pointer /** * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param confine_to possible: {@link #NONE} * @param cursor possible: {@link Cursor#NONE} * @param time possible: {@link Display#CURRENT_TIME} * * @return valid: * {@link #SUCCESS}, * {@link #ALREADY_GRABBED}, * {@link #FROZEN}, * {@link #INVALID_TIME}, * {@link #NOT_VIEWABLE} * * @see <a href="XGrabPointer.html">XGrabPointer</a> */ public int grab_pointer (bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor, int time) { Request request = new Request (display, 26, owner_events, 6); request.write4 (id); request.write2 (event_mask); request.write1 (pointer_mode); request.write1 (keyboard_mode); request.write4 (confine_to.id); request.write4 (cursor.id); request.write4 (time); return display.read_reply (request).read1 (1); }
// opcode 90 - store named color /** * @see <a href="XStoreNamedColor.html">XStoreNamedColor</a> */ public void store_named_color(int pixel, String name, bool do_reds, bool do_greens, bool do_blues) { int do_color = 0; if (do_reds) { do_color |= 0x01; } if (do_greens) { do_color |= 0x02; } if (do_blues) { do_color |= 0x04; } Request request = new Request(display, 90, do_color, 4 + Data.unit(name)); request.write4(id); request.write4(pixel); request.write2(name.Length); request.write1(name); display.send_request(request); }
// opcode 28 - grab button /** * @param button possible: {@link #ANY_BUTTON} * @param modifiers possible: {@link #ANY_MODIFIER} * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param confine_to possible: {@link #NONE} * @param cursor possible: {@link Cursor#NONE} * @see <a href="XGrabButton.html">XGrabButton</a> */ public void grab_button (int button, int modifiers, bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor) { Request request = new Request (display, 28, owner_events, 6); request.write4 (id); request.write2 (event_mask); request.write1 (pointer_mode); request.write1 (keyboard_mode); request.write4 (confine_to.id); request.write4 (cursor.id); request.write1 (button); request.write1_unused (); request.write2 (modifiers); display.send_request (request); }
// opcode 89 - store colors /** * @see <a href="XStoreColors.html">XStoreColors</a> */ public void store_colors(int [] pixels, bool [] do_reds, bool [] do_greens, bool [] do_blues, RGB [] rgbs) { Request request = new Request(display, 89, 2 + 3 * pixels.Length); request.write4(id); for (int i = 0; i < pixels.Length; i++) { request.write4(pixels [i]); request.write2(rgbs [i].red); request.write2(rgbs [i].green); request.write2(rgbs [i].blue); int do_color = 0; if (do_reds [i]) { do_color |= 0x01; } if (do_greens [i]) { do_color |= 0x02; } if (do_blues [i]) { do_color |= 0x04; } request.write1(do_color); request.write1_unused(); } display.send_request(request); }
// opcode 116 - set pointer mapping /** * @return valid: * {@link #SUCCESS}, * {@link #BUSY} * * @see <a href="XSetPointerMapping.html">XSetPointerMapping</a> */ public int set_pointer_mapping(byte [] map) { Request request = new Request(display, 116, map.Length, 2 + Data.unit(map)); request.write1(map); return(display.read_reply(request).read1(1)); }
// opcode 118 - set modifier mapping /** * @return valid: * {@link #SUCCESS}, * {@link #BUSY}, * {@link #FAILED} * * @see <a href="XSetModifierMapping.html">XSetModifierMapping</a> */ public int set_modifier_mapping(int keycodes_per_modifier, byte [] keycodes) { Request request = new Request(display, 118, keycodes_per_modifier, 1 + Data.unit(keycodes)); request.write1(keycodes); return(display.read_reply(request).read1(1)); }
// opcode 25 - send event /** * @see <a href="XSendEvent.html">XSendEvent</a> */ public void send_event (bool propagate, int event_mask, Event evt) { Request request = new Request (display, 25, propagate, 11); request.write4 (id); request.write4 (event_mask); request.write1 (evt.data); display.send_request (request); }
// opcode 98 - query extension /** * @see <a href="XQueryExtension.html">XQueryExtension</a> */ public ExtensionReply extension(String name) { Request request = new Request(this, 98, 2 + Data.unit(name)); request.write2(name.Length); request.write2_unused(); request.write1(name); return(new ExtensionReply(read_reply(request))); }
// opcode 51 - set font path /** * @see <a href="XSetFontPath.html">XSetFontPath</a> */ public void set_font_path(int count, String path) { Request request = new Request(this, 51, 2 + Data.unit(path)); request.write2(count); request.write2_unused(); request.write1(path); send_request(request); }
// opcode 48 - query text extents /** * @see <a href="XQueryTextExtents.html">XQueryTextExtents</a> */ public TextExtentReply text_extent(String s) { Request request = new Request(display, 48, s.Length % 2 == 1, 2 + Data.unit(s)); request.write4(id); request.write1(s); return(new TextExtentReply(display.read_reply(request))); }
// opcode 100 - change keyboard mapping /** * @see <a href="XChangeKeyboardMapping.html">XChangeKeyboardMapping</a> */ public void change_keyboard_mapping(int first_keycode, int keysyms_per_keycode, int [] keysyms) { int keycode_count = keysyms.Length / keysyms_per_keycode; Request request = new Request(display, 100, keycode_count, 2 + keysyms.Length); request.write1(first_keycode); request.write1(keysyms_per_keycode); request.write2_unused(); for (int i = 0; i < keysyms.Length; i++) { request.write4(keysyms [i]); } display.send_request(request); }
// opcode 101 - get keyboard mapping /** * @see <a href="XGetKeyboardMapping.html">XGetKeyboardMapping</a> */ public void keyboard_mapping() { int keysym_count = max_keycode - min_keycode + 1; Request request = new Request(display, 101, 2); request.write1(min_keycode); request.write1(keysym_count); Data reply = display.read_reply(request); keysyms_per_keycode = reply.read1(1); keysyms = new int [keysym_count]; for (int i = 0; i < keysym_count; i++) { keysyms [i] = reply.read4(32 + 4 * i * keysyms_per_keycode); } }
// opcode 48 - query text extents /** * @see <a href="XQueryTextExtents.html">XQueryTextExtents</a> */ public TextExtentReply text_extent(String s) { Request request = new Request (display, 48, s.Length % 2 == 1, 2+Data.unit (s)); request.write4 (id); request.write1 (s); return new TextExtentReply (display.read_reply (request)); }
// opcode 58 - set dashes /** * @see <a href="XSetDashes.html">XSetDashes</a> */ public void set_dashes(int dash_offset, byte [] dashes) { Request request = new Request(display, 58, 3 + Data.unit(dashes)); request.write4(id); request.write2(dash_offset); request.write2(dashes.Length); request.write1(dashes); display.send_request(request); }
// opcode 18 - change property /** * Extra parameters (offset and data_format) are used to support Data * class as parameter for writing. See set_wm_normal_hints (). * * @param mode valid: * {@link #REPLACE}, * {@link #PREPEND}, * {@link #APPEND} * * @param format: valid: * <code>8</code>, * <code>16</code>, * <code>32</code> * * @param data_format: valid: * <code>8</code>, * <code>16</code>, * <code>32</code> * * @see <a href="XChangeProperty.html">XChangeProperty</a> */ public void change_property (int mode, int n, Atom property, Atom type, int format, Object data, int offset, int data_format) { Request request = new Request (display, 18, mode, 6+Data.unit (n*format/8)); request.write4 (id); request.write4 (property.id); request.write4 (type.id); request.write1 (format); request.write3_unused (); request.write4 (n); // data length in format unit // data switch (data_format) { case 8: request.write1 ((byte []) data, offset); break; case 16: request.write2 ((int []) data, offset); break; case 32: request.write4 ((int []) data, offset); break; } display.send_request (request); }
// opcode 45 - open font /** * @see <a href="XLoadFont.html">XLoadFont</a> */ public Font(Display display, String name) : base(display) { this.name = name; Request request = new Request (display, 45, 3+Data.unit (name)); request.write4 (id); request.write2 (name.Length); request.write2_unused (); request.write1 (name); display.send_request (request); }
// opcode 50 - list fonts with info /** * @see <a href="XListFontsWithInfo.html">XListFontsWithInfo</a> */ public Data fonts_with_info(String pattern, int max_name_count) { Request request = new Request(this, 50, 2 + Data.unit(pattern)); request.write2(max_name_count); request.write2(pattern.Length); request.write1(pattern); // TODO deal with multiple replies return(read_reply(request)); }
// opcode 72 - put image public void put_small_image(GC gc, Image image, int y1, int y2, int x, int y) { int offset = image.line_byte_count * y1; int length = image.line_byte_count * (y2 - y1); Request request = new Request(display, 72, image.format, 6 + Data.unit(length)); request.write4(id); request.write4(gc.id); request.write2(image.width); request.write2(y2 - y1); request.write2(x); request.write2(y); request.write1(image.left_pad); request.write1(image.pixmap_format.depth()); request.write2_unused(); request.write1(image.data, offset, length); display.send_request(request); }
// opcode 77 - image text16 /** * @see <a href="XDrawImageString16.html">XDrawImageString16</a> */ public void image_text16(GC gc, int x, int y, String s) { Request request = new Request(display, 77, s.Length / 2, 4 + Data.unit(s)); request.write4(id); request.write4(gc.id); request.write2(x); request.write2(y); request.write1(s); display.send_request(request); }
public Enum fonts(String pattern, int max_name_count) { Request request = new Request(this, 49, 2 + Data.unit(pattern)); request.write2(max_name_count); request.write2(pattern.Length); request.write1(pattern); Data reply = read_reply(request); return(new FontsEnum(this, reply, 32, reply.read2(8))); }
//throws NotFoundException { // xtest opcode 0 - get version /** * @see <a href="XTestQueryExtension.html">XTestQueryExtension</a> */ public XTest(gnu.x11.Display display) : base(display, "XTEST", MINOR_OPCODE_STRINGS) { // check version before any other operations Request request = new Request (display, major_opcode, 0, 2); request.write1 (CLIENT_MAJOR_VERSION); request.write1_unused (); request.write2 (CLIENT_MINOR_VERSION); Data reply = display.read_reply (request); server_major_version = reply.read1 (1); server_minor_version = reply.read2 (10); }
// opcode 45 - open font /** * @see <a href="XLoadFont.html">XLoadFont</a> */ public Font(Display display, String name) : base(display) { this.name = name; Request request = new Request(display, 45, 3 + Data.unit(name)); request.write4(id); request.write2(name.Length); request.write2_unused(); request.write1(name); display.send_request(request); }
// render opcode 26 - fill rectangles /** * @see <a href="XRenderFillRectangle.html">XRenderFillRectangle</a> */ public void fill_rectangle(int op, Color color, int x, int y, int width, int height) { Request request = new Request (display, render.major_opcode, 26, 7); request.write1 (op); request.write3_unused (); request.write4 (id); request.write2 (x); request.write2 (y); request.write2 (width); request.write2 (height); request.write2 (color.red); request.write2 (color.green); request.write2 (color.blue); request.write2 (color.alpha); display.send_request (request); }
// opcode 92 - lookup color /** * @see <a href="XLookupColor.html">XLookupColor</a> */ public Color lookup_color(String name) { Request request = new Request(display, 92, 3 + Data.unit(name)); request.write4(id); request.write2(name.Length); request.write2_unused(); request.write1(name); Data reply = display.read_reply(request); Color color = new Color(0); color.name = name; color.exact = new RGB(reply.read2(8), reply.read2(10), reply.read2(12)); color.visual = new RGB(reply.read2(14), reply.read2(16), reply.read2(18)); return(color); }
// opcode 16 - intern atom /** * @see <a href="XInternAtom.html">XInternAtom</a> */ public Atom(Display display, String name, bool only_if_exists) { this.display = display; this.name = name; Request request = new Request(display, 16, only_if_exists, 2 + Data.unit(name)); request.write2(name.Length); request.write2_unused(); request.write1(name); Data reply = display.read_reply(request); id = reply.read4(8); display.atom_ids.Add(id, this); display.atom_names.Add(name, this); }
// opcode 75 - poly text16 /** * @see <a href="XDrawText16.html">XDrawText16</a> */ public void poly_text16(GC gc, int x, int y, Text [] texts) { Request request = new Request(display, 75, 4 + Data.unit(length(texts, 16))); request.write4(id); request.write4(gc.id); request.write2(x); request.write2(y); for (int i = 0; i < texts.Length; i++) { if (texts [i].font != null) { request.write1(255); // font-shift indicator request.write4(texts [i].font.id); // java = MSB } String s = texts [i].s; if (s[0] > 128) // non-ascii { request.write1(s.Length / 2); request.write1(texts [i].delta); request.write1(s); } else // ascii { request.write1(s.Length); request.write1(texts [i].delta); request.write2(s); } } display.send_request(request); }
// opcode 75 - poly text16 /** * @see <a href="XDrawText16.html">XDrawText16</a> */ public void poly_text16(GC gc, int x, int y, Text [] texts) { Request request = new Request (display, 75, 4+Data.unit (length (texts, 16))); request.write4 (id); request.write4 (gc.id); request.write2 (x); request.write2 (y); for (int i=0; i<texts.Length; i++) { if (texts [i].font != null) { request.write1 (255); // font-shift indicator request.write4 (texts [i].font.id); // java = MSB } String s = texts [i].s; if (s[0] > 128) { // non-ascii request.write1 (s.Length/2); request.write1 (texts [i].delta); request.write1 (s); } else { // ascii request.write1 (s.Length); request.write1 (texts [i].delta); request.write2 (s); } } display.send_request (request); }
/** * @see <a href="XOpenDisplay.html">XOpenDisplay</a> */ public Display(String hostname, int display_no, int screen_no) { default_screen_no = screen_no; connection = new Connection (this, hostname, display_no); // authorization protocol String auth_name = ""; String auth_data = ""; int n = Data.len (auth_name); int d = Data.len (auth_data); Request request = new Request (this, 'B', // java = MSB 3 + Data.unit (auth_name) + Data.unit (auth_data)); request.index = 2; // connection setup request hack request.write2 (11); // major version request.write2 (0); // minor version request.write2 (auth_name.Length); request.write2 (auth_data.Length); request.write1 (auth_name); request.write1 (auth_data); init_server_info (read_reply (request)); init_defaults (); init_big_request_extension (); }
// opcode 18 - change property /** * Extra parameters (offset and data_format) are used to support Data * class as parameter for writing. See set_wm_normal_hints (). * * @param mode valid: * {@link #REPLACE}, * {@link #PREPEND}, * {@link #APPEND} * * @param format: valid: * <code>8</code>, * <code>16</code>, * <code>32</code> * * @param data_format: valid: * <code>8</code>, * <code>16</code>, * <code>32</code> * * @see <a href="XChangeProperty.html">XChangeProperty</a> */ public void change_property(int mode, int n, Atom property, Atom type, int format, Object data, int offset, int data_format) { Request request = new Request (display, 18, mode, 6+Data.unit (n*format/8)); request.write4 (id); request.write4 (property.id); request.write4 (type.id); request.write1 (format); request.write3_unused (); request.write4 (n); // data length in format unit // data switch (data_format) { case 8: request.write1 ((byte []) data, offset); break; case 16: request.write2 ((int []) data, offset); break; case 32: request.write4 ((int []) data, offset); break; } display.send_request (request); }
// opcode 28 - grab button /** * @param button possible: {@link #ANY_BUTTON} * @param modifiers possible: {@link #ANY_MODIFIER} * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param confine_to possible: {@link #NONE} * @param cursor possible: {@link Cursor#NONE} * @see <a href="XGrabButton.html">XGrabButton</a> */ public void grab_button(int button, int modifiers, bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor) { Request request = new Request (display, 28, owner_events, 6); request.write4 (id); request.write2 (event_mask); request.write1 (pointer_mode); request.write1 (keyboard_mode); request.write4 (confine_to.id); request.write4 (cursor.id); request.write1 (button); request.write1_unused (); request.write2 (modifiers); display.send_request (request); }
// opcode 33 - grab key /** * @param modifiers possible: {@link #ANY_MODIFIER} * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @see <a href="XGrabKey.html">XGrabKey</a> */ public void grab_key(int keysym, int modifiers, bool owner_events, int pointer_mode, int keyboard_mode) { int keycode = display.input.keysym_to_keycode (keysym); Request request = new Request (display, 33, owner_events, 4); request.write4 (id); request.write2 (modifiers); request.write1 (keycode); request.write1 (pointer_mode); request.write1 (keyboard_mode); display.send_request (request); }
// opcode 109 - change hosts /** * @param mode valid: * {@link #INSERT}, * {@link #DELETE} * * @see <a href="XAddHost.html">XAddHost</a> * @see <a href="XRemoveHost.html">XRemoveHost</a> */ public void change_hosts(int mode, int family, byte [] host) { Request request = new Request (this, 109, mode, 2+Data.unit (host)); request.write1 (family); request.write1_unused (); request.write2 (host.Length); request.write1 (host); send_request (request); }
// opcode 105 - change pointer control /** * @see <a href="XChangePointerControl.html">XChangePointerControl</a> */ public void change_pointer_control(bool do_accel, bool do_threshold, int accel_numerator, int accel_denominator, int threshold) { Request request = new Request (display, 105, 3); request.write2 (accel_numerator); request.write2 (accel_denominator); request.write2 (threshold); request.write1 (do_accel); request.write1 (do_threshold); display.send_request (request); }
// opcode 58 - set dashes /** * @see <a href="XSetDashes.html">XSetDashes</a> */ public void set_dashes(int dash_offset, byte [] dashes) { Request request = new Request (display, 58, 3+Data.unit (dashes)); request.write4 (id); request.write2 (dash_offset); request.write2 (dashes.Length); request.write1 (dashes); display.send_request (request); }
// opcode 26 - grab pointer /** * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param confine_to possible: {@link #NONE} * @param cursor possible: {@link Cursor#NONE} * @param time possible: {@link Display#CURRENT_TIME} * * @return valid: * {@link #SUCCESS}, * {@link #ALREADY_GRABBED}, * {@link #FROZEN}, * {@link #INVALID_TIME}, * {@link #NOT_VIEWABLE} * * @see <a href="XGrabPointer.html">XGrabPointer</a> */ public int grab_pointer(bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor, int time) { Request request = new Request (display, 26, owner_events, 6); request.write4 (id); request.write2 (event_mask); request.write1 (pointer_mode); request.write1 (keyboard_mode); request.write4 (confine_to.id); request.write4 (cursor.id); request.write4 (time); return display.read_reply (request).read1 (1); }
// opcode 31 - grab keyboard /** * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param time possible: {@link Display#CURRENT_TIME} * * @return valid: * {@link #SUCCESS}, * {@link #ALREADY_GRABBED}, * {@link #FROZEN}, * {@link #INVALID_TIME}, * {@link #NOT_VIEWABLE} * * @see <a href="XGrabKeyboard.html">XGrabKeyboard</a> */ public int grab_keyboard(bool owner_events, int pointer_mode, int keyboard_mode, int time) { Request request = new Request (display, 31, owner_events, 4); request.write4 (id); request.write4 (time); request.write1 (pointer_mode); request.write1 (keyboard_mode); return display.read_reply (request).read1 (1); }
// opcode 25 - send event /** * @see <a href="XSendEvent.html">XSendEvent</a> */ public void send_event(bool propagate, int event_mask, Event evt) { Request request = new Request (display, 25, propagate, 11); request.write4 (id); request.write4 (event_mask); request.write1 (evt.data); display.send_request (request); }
// opcode 118 - set modifier mapping /** * @return valid: * {@link #SUCCESS}, * {@link #BUSY}, * {@link #FAILED} * * @see <a href="XSetModifierMapping.html">XSetModifierMapping</a> */ public int set_modifier_mapping(int keycodes_per_modifier, byte [] keycodes) { Request request = new Request (display, 118, keycodes_per_modifier, 1+Data.unit (keycodes)); request.write1 (keycodes); return display.read_reply (request).read1 (1); }
// xtest opcode 3 - grab control /** * @see <a href="XTestGrabControl.html">XTestGrabControl</a> */ public void grab_control(bool impervious) { Request request = new Request (display, major_opcode, 3, 2); request.write1 (impervious); display.send_request (request); }
// xtest opcode 2 - fake input /** * @param type valid: * {@link #KEY_PRESS}, * {@link #KEY_RELEASE}, * {@link #BUTTON_PRESS}, * {@link #BUTTON_RELEASE}, * {@link #MOTION_NOTIFY} * * @param time possible: {@link gnu.x11.Display#CURRENT_TIME} */ public void fake_input(int type, int detail, int delay, Window root, int x, int y) { Request request = new Request (display, major_opcode, 2, 9); request.write1 (type); request.write1 (detail); request.write2_unused (); request.write4 (delay); request.write4 (root.id); request.write_unused (8); request.write2 (x); request.write2 (y); display.send_request (request); }
// render opcode 8 - composite /** * @param operation * {@link #CLEAR} * {@link #SRC} * {@link #DST} * {@link #OVER} * {@link #OVER_REVERSE} * {@link #IN} * {@link #IN_REVERSE} * {@link #OUT} * {@link #OUT_REVERSE} * {@link #ATOP} * {@link #ATOP_REVERSE} * {@link #XOR} * {@link #ADD} * {@link #SATURATE} * {@link #MAXIMUM} * * @see <a href="XRenderComposite.html">XRenderComposite</a> */ public void composite(int op, Picture src, Picture mask, Picture dst, int src_x, int src_y, int mask_x, int mask_y, int dst_x, int dst_y, int width, int height) { Request request = new Request (display, major_opcode, 8, 9); request.write1 (op); request.write3_unused (); request.write4 (src.id); request.write4 (mask.id); request.write4 (dst.id); request.write2 (src_x); request.write2 (src_y); request.write2 (mask_x); request.write2 (mask_y); request.write2 (dst_x); request.write2 (dst_y); request.write2 (width); request.write2 (height); display.send_request (request); }
// opcode 100 - change keyboard mapping /** * @see <a href="XChangeKeyboardMapping.html">XChangeKeyboardMapping</a> */ public void change_keyboard_mapping(int first_keycode, int keysyms_per_keycode, int [] keysyms) { int keycode_count = keysyms.Length / keysyms_per_keycode; Request request = new Request (display, 100, keycode_count, 2+keysyms.Length); request.write1 (first_keycode); request.write1 (keysyms_per_keycode); request.write2_unused (); for (int i=0; i<keysyms.Length; i++) request.write4 (keysyms [i]); display.send_request (request); }
// opcode 50 - list fonts with info /** * @see <a href="XListFontsWithInfo.html">XListFontsWithInfo</a> */ public Data fonts_with_info(String pattern, int max_name_count) { Request request = new Request (this, 50, 2+Data.unit (pattern)); request.write2 (max_name_count); request.write2 (pattern.Length); request.write1 (pattern); // TODO deal with multiple replies return read_reply (request); }
// opcode 101 - get keyboard mapping /** * @see <a href="XGetKeyboardMapping.html">XGetKeyboardMapping</a> */ public void keyboard_mapping() { int keysym_count = max_keycode - min_keycode + 1; Request request = new Request (display, 101, 2); request.write1 (min_keycode); request.write1 (keysym_count); Data reply = display.read_reply (request); keysyms_per_keycode = reply.read1 (1); keysyms = new int [keysym_count]; for (int i=0; i<keysym_count; i++) keysyms [i] = reply.read4 (32 + 4 * i * keysyms_per_keycode); }
// opcode 51 - set font path /** * @see <a href="XSetFontPath.html">XSetFontPath</a> */ public void set_font_path(int count, String path) { Request request = new Request (this, 51, 2+Data.unit (path)); request.write2 (count); request.write2_unused (); request.write1 (path); send_request (request); }
// opcode 116 - set pointer mapping /** * @return valid: * {@link #SUCCESS}, * {@link #BUSY} * * @see <a href="XSetPointerMapping.html">XSetPointerMapping</a> */ public int set_pointer_mapping(byte [] map) { Request request = new Request (display, 116, map.Length, 2+Data.unit (map)); request.write1 (map); return display.read_reply (request).read1 (1); }
// opcode 107 - set screen saver /** * @param prefer_blanking valid: * {@link #NO}, * {@link #YES}, * {@link #DEFAULT} * * @param allow_exposures valid: * {@link #NO}, * {@link #YES}, * {@link #DEFAULT} * * @see <a href="XSetScreenSaver.html">XSetScreenSaver</a> */ public void set_screen_saver(int timeout, int interval, int prefer_blanking, int allow_exposures) { Request request = new Request (this, 107, 3); request.write2 (timeout); request.write2 (interval); request.write1 (prefer_blanking); request.write1 (allow_exposures); send_request (request); }
// opcode 98 - query extension /** * @see <a href="XQueryExtension.html">XQueryExtension</a> */ public ExtensionReply extension(String name) { Request request = new Request (this, 98, 2+Data.unit (name)); request.write2 (name.Length); request.write2_unused (); request.write1 (name); return new ExtensionReply (read_reply (request)); }
// opcode 72 - put image public void put_small_image(GC gc, Image image, int y1, int y2, int x, int y) { int offset = image.line_byte_count * y1; int length = image.line_byte_count * (y2 - y1); Request request = new Request (display, 72, image.format, 6+Data.unit (length)); request.write4 (id); request.write4 (gc.id); request.write2 (image.width); request.write2 (y2 - y1); request.write2 (x); request.write2 (y); request.write1 (image.left_pad); request.write1 (image.pixmap_format.depth ()); request.write2_unused (); request.write1 (image.data, offset, length); display.send_request (request); }
// opcode 16 - intern atom /** * @see <a href="XInternAtom.html">XInternAtom</a> */ public Atom(Display display, String name, bool only_if_exists) { this.display = display; this.name = name; Request request = new Request (display, 16, only_if_exists, 2+Data.unit (name)); request.write2 (name.Length); request.write2_unused (); request.write1 (name); Data reply = display.read_reply (request); id = reply.read4 (8); display.atom_ids.Add (id, this); display.atom_names.Add (name, this); }
public Enum fonts(String pattern, int max_name_count) { Request request = new Request (this, 49, 2+Data.unit (pattern)); request.write2 (max_name_count); request.write2 (pattern.Length); request.write1 (pattern); Data reply = read_reply (request); return new FontsEnum (this, reply, 32, reply.read2 (8)); }