From c1c244cb874b28521ca42c7b09b33ea3813616c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Thu, 8 Jan 1998 03:58:49 +0100 Subject: [PATCH] * Types.pmod (Window.ListProperties): New method. Rev: lib/modules/Protocols.pmod/X.pmod/Types.pmod:1.9 --- lib/modules/Protocols.pmod/X.pmod/Types.pmod | 33 +++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/lib/modules/Protocols.pmod/X.pmod/Types.pmod b/lib/modules/Protocols.pmod/X.pmod/Types.pmod index 1a4846fa6c..3d1a68f66e 100644 --- a/lib/modules/Protocols.pmod/X.pmod/Types.pmod +++ b/lib/modules/Protocols.pmod/X.pmod/Types.pmod @@ -119,10 +119,11 @@ class Colormap req->red = r; req->green = g; req->blue = b; - return (alloced[sprintf("%2c%2c%2c", r, g, b)]= - display->blocking_request( req )); - } + array a = display->blocking_request( req ); + return a[0] && (alloced[sprintf("%2c%2c%2c", r, g, b)]= + a[1]); + } void create(object disp, int i, object vis) { @@ -479,7 +480,6 @@ class Window display->send_request(Configure_req(m)); } - void set_event_callback(string type, function f) { event_callbacks[type] = f; @@ -538,7 +538,32 @@ class Window display->send_request(Map_req()); } + object ListProperties_req() + { + object req = Requests.ListProperties(); + req->window = id; + return req; + } + + array ListProperties() + { + object req = ListProperties_req(); + array a = display->blocking_request(req); + if (!a[0]) + return 0; + + a = a[1]; + for(int i = 0; i<sizeof(a); i++) + { + object atom = display->lookup_atom(a[i]); + if (!atom) + return 0; + a[i] = atom; + } + return a; + } + // Shape extension void ShapeRectangles( string kind, int xo, int yo, string operation, array (object(Rectangle)) rectangles ) -- GitLab