synonym of "open x11 here". connects to the default X11 server, according to your environment variable "DISPLAY". connects to a display server on this machine. connects to a remote X11 display server using TCP. Port number will be 6000 plus the display number, because of the X11 standard. supports 15, 16, 24, 32-bit truecolor displays now also support 8-bit indexed displays, using a private colormap configured as 3:3:2 RGB. When using 8-bit you can specify the "use_stripes" option to use a completely different color scheme involving R, G, B diagonal stripes, a kind of 6:6:6 RGB spread over three pixels. If you are using Windows or MacOS 10: you will have to install a X11 server. This will emulate Unix display on your OS. (note: Unix systems also need a X11 server, but it's built-in and handles the video driver directly). In the case of MacOS 10 and QNX that both use non-X11 display technology on top of a basically Unix OS, the OS comes with a X11 server, but it may be on a "bundled software" CD. with [#in], captures a frame \$1=height \$2=width. changes the window's size, just like sending a grid dim(height, width, 3) would. this affects the size of screen captures too. This makes the cursor invisible. Destroying the object (or sending "close") should close the window. because of the design of Xlib, or if any of the connections involved crashes, then the whole program has to be terminated. (don't you love xlib). Something similar happens if you close any of the windows yourself, but IIRC this could be fixed. \$1=y \$2=x \$3=buttons The y and x coordinates are relative to the upper right corner of the window. Specific button states may be extracted from the button value by applying [>> buttonnumber] and then checking whether the result is odd. 0: Shift 1: Caps Lock 2: Control 3: Alternate 4: NumLock 5: (unknown) 6: Meta or Window Key 7: Scroll Lock 8: Left Mouse Button 9: Middle Mouse Button or Mouse Wheel Click 10: Right Mouse Button 11: Wheel Up 12: Wheel Down NOTE: This message form may become longer in the future, but the already defined parts will stay the same. \$1=y \$2=x \$3=buttons \$4=keyname \$1=y \$2=x \$3=buttons \$4=keyname Same as keypress but when a key gets released instead. NOTE: This message form may become longer in the future, but the already defined parts will stay the same. other syntax for 'remote'. there is one last argument that may be added to every "open" message of [#in x11]. if you don't put it, a new toplevel window is created. if you put "root" then the screen's wallpaper will be used instead (it may fail to work with some popular window managers). You can also put a window number, e.g. 0x28003ff, you may connect to an existing window. you can find out the number of a window by using a tool like xwininfo, part of X11 standard tools. (This used to work also for [#out x11]. it's a bug) if you need borderless untouchable windows. then you can add override_redirect option to open a window that will not be handled by the window manager, so that it doesn't have any borders, for example. however, this is "dangerous", as you can lock yourself out of your computer. On Linux you can escape that using Ctrl+Alt+F1 or similar. Another problem is that it prevents the window from getting 'keypress' 'keyrelease' events. This is emitted when a keyboard key is pressed while this format handler's window is active. Keynames follow the X11 standard, similarly to PureData's [keyname] object. The only exception is that keynames that are digits get prefixed by a capital D so that they don't get mistaken for actual numbers. NOTE: This message form may become longer in the future, but the already defined parts will stay the same. Resizes the window to the size of the grid ; Encodes that grid in the display's pixel format ; Also displays it if autodraw is greater than 0 ; The values must be in range 0-255, or else they will be "wrapped". move the window to the position \$1=y \$2=x does: out_size \$1 \$2, move \$3 \$4 puts the symbol \$1 in the titlebar instead of the default GridFlow (240, 320, 3)" or similar). if title is an empty string, the title goes back to the default mode of writing "GridFlow" and the window size. moves mouse cursor to location y=\$1 x=\$2. use sparingly. for future use. 0: don't use explicit shared memory for sending to the video card. 1: use shared memory if available. 0: hide window border. this does not work in Apple X11. It may or may not work on Linux X11 (or other X11 servers) depending on the window manager. This was tested on GNOME/Metacity. 1: show window border (default) this option is not the same as override_redirect, because it asks the window manager to not put the border, while still managing the window otherwise. thus, for example, Metacity still allows Alt+Button1 and Alt+Tab to affect that window, which is not the case with override_redirect. Also, border is different, as this setting can be changed while the window exists. Note that if your cursor table has them numbered from 0 to 154 using only even numbers, then those cursor numbers are all doubled compared to the ones GridFlow uses. \$1=cursor_id. \$1=cursor_id. Selects one of the 77 predefined cursors of X11, from 0 to 76 Note that out-of-range values are now rejected. On Linux, the file /usr/include/X11/cursorfont.h contain a list of cursor names, with doubled numbers, but this file isn't always already installed. On Ubuntu, this is in the package named "libx11-dev". only one window may be used per x11 connection (to simplify matters ; this doesn't reduce flexibility). with [#out], displays a frame. grid(rows columns rgb) explicitly ask for a "position" message. It will be sent before this method returns. This is emitted every time the cursor moves inside the window connected to this format handler. This is also emitted when the cursor is dragging from inside to outside the window. This is also emitted when a mouse button is pressed. Finally, this is emitted when receiving a query_pointer message. pick a new safeguard for window size. (default is 16 16). For example, out_size_minimum 1 1 will allow any nonzero window size. this attribute is in turn safeguarded against values lower than 1