\ Copyright 2021 Bradley D. Nelson \ \ Licensed under the Apache License, Version 2.0 (the "License"); \ you may not use this file except in compliance with the License. \ You may obtain a copy of the License at \ \ http://www.apache.org/licenses/LICENSE-2.0 \ \ Unless required by applicable law or agreed to in writing, software \ distributed under the License is distributed on an "AS IS" BASIS, \ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \ See the License for the specific language governing permissions and \ limitations under the License. include posix/xlib.fs also x11 0 XOpenDisplay constant display display XDefaultScreen constant screen display screen XBlackPixel constant black display screen XWhitePixel constant white display screen XRootWindow constant root-window display root-window 0 0 640 480 0 black white XCreateSimpleWindow constant window display window XMapWindow drop display window 0 NULL XCreateGC constant gc ExposureMask ButtonPressMask or ButtonReleaseMask or KeyPressMask or KeyReleaseMask or PointerMotionMask or StructureNotifyMask or constant event-mask display window event-mask XSelectInput drop variable width variable height create event xevent-size allot : draw width @ . height @ . display gc black XSetForeground drop display gc black XSetBackground drop display window gc 0 0 width @ height @ XFillRectangle drop display gc white XSetForeground drop display gc white XSetBackground drop display window gc 0 0 width @ 2/ height @ 2/ XFillRectangle drop ; : handle-event event xevent-size event c@ . event c@ Expose = if draw ." Expose" then event c@ ButtonPress = if ." ButtonPress" then event c@ ButtonRelease = if ." ButtonRelease" then event c@ KeyPress = if ." KeyPress" then event c@ KeyRelease = if ." KeyRelease" then event c@ MotionNotify = if ." MotionNotify" then event c@ DestroyNotify = if ." DestroyNotify" then event c@ ConfigureNotify = if event 3 16 * 8 + + l@ width ! event 3 16 * 12 + + l@ height ! ." width & height: " width @ . height @ . ." ConfigureNotify" then event c@ MapNotify = if ." MapNotify" then cr ; : do-event display event XNextEvent drop handle-event ; : gg begin draw do-event again ;
Legal: site web personnel sans commerce / personal site without seling