From 04a27de1317f235e8e6aa632bae411ac4303c6ac Mon Sep 17 00:00:00 2001 From: Alex Chapman Date: Mon, 19 Dec 2005 02:02:43 +0000 Subject: [PATCH] Moved most of my stuff from x11-wrunt into x11. Added a few things to Edouardo's xlib.factor to make my stuff work. Removed all but xlib.factor from x11-wrunt. I have left that there because there may still be things in it that are not yet in the other xlib.factor. I've also added load2.factor which will load the files when factor's cwd is its root dir. --- contrib/x11/{x11-wrunt => }/glx.factor | 0 contrib/x11/{x11-wrunt => }/keysymdef.factor | 0 contrib/x11/{x11-wrunt => }/lesson2.factor | 4 +-- contrib/x11/load2.factor | 9 ++++++ .../x.factor => x-constants.factor} | 0 contrib/x11/{x11-wrunt => }/x-events.factor | 0 contrib/x11/x11-wrunt/README.txt | 20 ------------- contrib/x11/x11-wrunt/load.factor | 9 ------ contrib/x11/xlib.factor | 29 +++++++++++++++++-- contrib/x11/{x11-wrunt => }/xutil.factor | 0 10 files changed, 37 insertions(+), 34 deletions(-) rename contrib/x11/{x11-wrunt => }/glx.factor (100%) rename contrib/x11/{x11-wrunt => }/keysymdef.factor (100%) rename contrib/x11/{x11-wrunt => }/lesson2.factor (96%) create mode 100644 contrib/x11/load2.factor rename contrib/x11/{x11-wrunt/x.factor => x-constants.factor} (100%) rename contrib/x11/{x11-wrunt => }/x-events.factor (100%) delete mode 100644 contrib/x11/x11-wrunt/README.txt delete mode 100644 contrib/x11/x11-wrunt/load.factor rename contrib/x11/{x11-wrunt => }/xutil.factor (100%) diff --git a/contrib/x11/x11-wrunt/glx.factor b/contrib/x11/glx.factor similarity index 100% rename from contrib/x11/x11-wrunt/glx.factor rename to contrib/x11/glx.factor diff --git a/contrib/x11/x11-wrunt/keysymdef.factor b/contrib/x11/keysymdef.factor similarity index 100% rename from contrib/x11/x11-wrunt/keysymdef.factor rename to contrib/x11/keysymdef.factor diff --git a/contrib/x11/x11-wrunt/lesson2.factor b/contrib/x11/lesson2.factor similarity index 96% rename from contrib/x11/x11-wrunt/lesson2.factor rename to contrib/x11/lesson2.factor index 4a6f8cd067..fa4afae051 100644 --- a/contrib/x11/x11-wrunt/lesson2.factor +++ b/contrib/x11/lesson2.factor @@ -1,5 +1,5 @@ IN: nehe -USING: opengl x11 syntax kernel sequences alien namespaces math threads generic io prettyprint ; +USING: opengl x11 xlib syntax kernel sequences alien namespaces math threads generic io prettyprint ; TUPLE: gl-window dpy screen win ctx x y width height depth ; SYMBOL: current-window @@ -82,7 +82,7 @@ SYMBOL: height title set depth set height set width set y set x set make-display dup dup make-screen make-vi make-ctx make-colormap normal-XSetWindowAttributes make-win - dpy get swap 2dup over "WM_DELETE_WINDOW" t XInternAtom 1 XSetWMProtocols drop + dpy get swap 2dup over "WM_DELETE_WINDOW" 1 XInternAtom 1 XSetWMProtocols drop 2dup title get dup None 0 0 over XSetStandardProperties drop 2dup XMapRaised drop 2dup ctx get glXMakeCurrent 2drop diff --git a/contrib/x11/load2.factor b/contrib/x11/load2.factor new file mode 100644 index 0000000000..297c25955d --- /dev/null +++ b/contrib/x11/load2.factor @@ -0,0 +1,9 @@ +USING: kernel alien parser sequences words compiler ; + +"X11" "libX11.so" "cdecl" add-library + +[ "x-constants.factor" "xlib.factor" "xutil.factor" "keysymdef.factor" "x-events.factor" "glx.factor" ] [ "contrib/x11/" swap append run-file ] each + +"x11" words [ try-compile ] each +"xlib" words [ try-compile ] each +clear diff --git a/contrib/x11/x11-wrunt/x.factor b/contrib/x11/x-constants.factor similarity index 100% rename from contrib/x11/x11-wrunt/x.factor rename to contrib/x11/x-constants.factor diff --git a/contrib/x11/x11-wrunt/x-events.factor b/contrib/x11/x-events.factor similarity index 100% rename from contrib/x11/x11-wrunt/x-events.factor rename to contrib/x11/x-events.factor diff --git a/contrib/x11/x11-wrunt/README.txt b/contrib/x11/x11-wrunt/README.txt deleted file mode 100644 index 94ee7ce6e1..0000000000 --- a/contrib/x11/x11-wrunt/README.txt +++ /dev/null @@ -1,20 +0,0 @@ -Most of these files take their content from corresponding C files: -x.factor -- X.h -xlib.factor -- Xlib.h -xutil.factor -- Xutil.h -glx.factor -- glx.h and glxtokens.h -keysymdef.factor -- keysymdef.h - -x-events.factor defines x-event predicates (see lesson2.factor for usage) - -Not all of these are complete, but they are complete to run lesson 2 of the -nehe opengl tutorials (and the other tutorials with small changes). To see a -demo run from factor's root dir: - "contrib/x11/x11-wrunt/load.factor" run-file - ( then wait for everything to compile... ) - USE: nehe - main - -Pressing 'q' or esc, or clicking the mouse will exit. If something goes wrong -you can kill off the window with: - current-window get kill-gl-window diff --git a/contrib/x11/x11-wrunt/load.factor b/contrib/x11/x11-wrunt/load.factor deleted file mode 100644 index a7b22c3b7d..0000000000 --- a/contrib/x11/x11-wrunt/load.factor +++ /dev/null @@ -1,9 +0,0 @@ -USING: kernel alien parser sequences words compiler ; - -"X11" "libX11.so" "cdecl" add-library - -[ "x.factor" "xlib.factor" "xutil.factor" "keysymdef.factor" "x-events.factor" - "glx.factor" "lesson2.factor" ] [ "contrib/x11/x11-wrunt/" swap append run-file ] each - -"x11" words [ try-compile ] each - diff --git a/contrib/x11/xlib.factor b/contrib/x11/xlib.factor index f8bf6fd12a..a9cab1264a 100644 --- a/contrib/x11/xlib.factor +++ b/contrib/x11/xlib.factor @@ -9,7 +9,7 @@ ! and are wondering what part of the file to modify, just find the ! function or data structure in the manual and note the section. -IN: xlib USING: kernel vectors alien math ; +IN: xlib USING: kernel arrays alien math ; LIBRARY: xlib @@ -27,6 +27,7 @@ TYPEDEF: XID KeySym TYPEDEF: ulong Atom +TYPEDEF: char* XPointer TYPEDEF: void* Display* TYPEDEF: void* Screen* TYPEDEF: void* GC @@ -67,6 +68,9 @@ FUNCTION: int XQLength ( Display* display ) ; FUNCTION: int XScreenCount ( Display* display ) ; FUNCTION: int XConnectionNumber ( Display* display ) ; +! 2.5 Closing the Display +FUNCTION: int XCloseDisplay ( Display* display ) ; + ! ! 3 - Window Functions ! @@ -123,6 +127,7 @@ END-STRUCT ! 3.3 - Creating Windows +FUNCTION: Window XCreateWindow ( Display* display, Window parent, int x, int y, uint width, uint height, uint border_width, int depth, uint class, Visual* visual, ulong valuemask, XSetWindowAttributes* attributes ) ; FUNCTION: Window XCreateSimpleWindow ( Display* display, Window parent, int x, int y, uint width, uint height, uint border_width, ulong border, ulong background ) ; FUNCTION: Status XDestroyWindow ( Display* display, Window w ) ; FUNCTION: Status XMapWindow ( Display* display, Window window ) ; @@ -130,6 +135,10 @@ FUNCTION: Status XMapSubwindows ( Display* display, Window window ) ; FUNCTION: Status XUnmapWindow ( Display* display, Window w ) ; FUNCTION: Status XUnmapSubwindows ( Display* display, Window w ) ; +! 3.5 Mapping Windows + +FUNCTION: int XMapRaised ( Display* display, Window w ) ; + ! 3.7 - Configuring Windows : CWX 1 0 shift ; @@ -265,6 +274,10 @@ FUNCTION: Status XLookupColor ( Display* display, Colormap colormap, char* color FUNCTION: Status XAllocColor ( Display* display, Colormap colormap, XColor* screen_in_out ) ; FUNCTION: Status XQueryColor ( Display* display, Colormap colormap, XColor* def_in_out ) ; +! 6.4 Creating, Copying, and Destroying Colormaps + +FUNCTION: Colormap XCreateColormap ( Display* display, Window w, Visual* visual, int alloc ) ; + ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! 7 - Graphics Context Functions ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -525,10 +538,10 @@ TYPEDEF: XButtonEvent XButtonPressedEvent TYPEDEF: XButtonEvent XButtonReleasedEvent : XButtonEvent-position ( event -- { x y } ) - dup XButtonEvent-x swap XButtonEvent-y 2vector ; + dup XButtonEvent-x swap XButtonEvent-y 2array ; : XButtonEvent-root-position ( event -- { x y } ) - dup XButtonEvent-x swap XButtonEvent-y 2vector ; + dup XButtonEvent-x swap XButtonEvent-y 2array ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -1087,6 +1100,10 @@ FUNCTION: Status XWarpPointer ( Display* display, Window src_w, Window dest_w, i ! 14 - Inter-Client Communication Functions ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! 14.1 Client to Window Manager Communication + +FUNCTION: Status XSetWMProtocols ( Display* display, Window w, Atom* protocols, int count ) ; + FUNCTION: Status XFetchName ( Display* display, Window w, char** window_name_return ) ; FUNCTION: Status XGetTransientForHint ( Display* display, Window w, Window* prop_window_return ) ; @@ -1094,8 +1111,14 @@ FUNCTION: Status XGetTransientForHint ( Display* display, Window w, Window* prop ! 16 - Application Utility Functions ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! 16.1 Keyboard Utility Functions + +FUNCTION: KeySym XLookupKeysym ( XKeyEvent* key_event, int index ) ; + + FUNCTION: int XLookupString ( XKeyEvent* event_struct, char* buffer_return, int bytes_buffer, KeySym* keysym_return, XComposeStatus* status_in_out ) ; + ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : CurrentTime 0 ; diff --git a/contrib/x11/x11-wrunt/xutil.factor b/contrib/x11/xutil.factor similarity index 100% rename from contrib/x11/x11-wrunt/xutil.factor rename to contrib/x11/xutil.factor