2007 Jak napisać aplikację w czystych Xach ? X11/Xlib.

Jak napisać aplikację w czystych X-ach :).

Bierzemy kod z http://en.wikibooks.org/wiki/X_Windows_Programming/XLib

/*
   Simple Xlib application drawing a box in a window.
 */
 
 #include<X11/Xlib.h>
 #include<stdio.h>
 
 int main() {
   Display *d;
   int s;
   Window w;
   XEvent e;
 
                        /* open connection with the server */
   d=XOpenDisplay(NULL);
   if(d==NULL) {
     printf("Cannot open display\n");
     exit(1);
   }
   s=DefaultScreen(d);
 
                        /* create window */
   w=XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 100, 1,
                         BlackPixel(d, s), WhitePixel(d, s));
 
                        /* select kind of events we are interested in */
   XSelectInput(d, w, ExposureMask | KeyPressMask);
 
                        /* map (show) the window */
   XMapWindow(d, w);
 
                        /* event loop */
   while(1) {
     XNextEvent(d, &e);
                        /* draw or redraw the window */
     if(e.type==Expose) {
       XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
     }
                        /* exit on key press */
     if(e.type==KeyPress)
       break;
   }
 
                        /* destroy our window */
   XDestroyWindow(d, w);
 
                        /* close connection to server */
   XCloseDisplay(d);
 
   return 0;
 }

I kompilujemy linkując z bibliteką X11 (t.j. plikiem libX11.a).
By odnaleźć go możesz użyć "locate libX11.a" i "whereis libX11.a" , u mnie to katalog /usr/X11R6/lib64 .
Więc powyższy przykład kompiluje :
gcc xlib_x11_example.c -L/usr/X11R6/lib64 -lX11
I otrzymuje piękny a.out :).

Linki do tematu.
(Hasła na googlu : "Xlib programming tutorial" "Xlib programowanie" etc.)
http://linuxgazette.net/issue78/tougher.html
http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html
http://www.tronche.com/gui/x/xlib/
http://dione.ids.pl/~pborys/xfaq/sectionVI/3/

http://tronche.com/gui/x/xlib-tutorial/
http://www.visi.com/~grante/Xtut/
http://tronche.com/gui/x/xlib/function-index.html

Lesstif:
http://www.lesstif.org/ -> http://www.lesstif.org/links.html

Athena, Motif:
http://dione.cc/~pborys/xfaq/sectionVI/1/index-12.html
http://docs.linux.cz/programming/gui/motif/motif.html
http://docs.hp.com/en/B1171-90150/ch02.html
http://www-h.eng.cam.ac.uk/help/tpl/graphics/Motif/README.html
http://www.cs.cf.ac.uk/Dave/X_lecture/
ad-hoc:
http://www.atai.org/guitool/

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License