Newsgroup: it.comp.os.linux.development
Titolo: X11: disegnare linee e trovare documentazione decente :-(

Dopo un'estenuante ricerca con google cercando un manuale di programmazione 
di X ho trovato questo:
http://lesstif.sourceforge.net/doc/Xlib/spec/xlib.html
che però deve essere la brutta copia di un altro documento in quanto le 
immagini coi diagrammi sono mancanti (rimpiazzate da scansioni del testo 
originale ma di parti che non centrano niente...).
Nonostante si tratti di un documento così male impaginato, male strutturato, 
sconclusionato, mancante di ogni riferimento a situazioni reali ed esempi e 
privo di un filo logico nel trattare l'argomento da sembrare scritto da un 
docente universitario italiano qualcosa sono risucito a cavarci e dopo un 
paio d'ore di letture sono riuscito ad aprire una bella finestra con lo 
sfondo rosso.... Qualcuno potrebbe per favore indicarmi della 
documentazione migliore e possibilmente dotata di esempi?
Ah! Nella mia finestra volevo disegnarci delle linee e ho proceduto come 
segue:
        Display *dis;
      Window finestra;
      GC gc;
      int i;
        dis = XOpenDisplay (NULL);
      finestra = XCreateWindow (dis, XRootWindow (dis, 0), 0, 0, 200, 100, 
1, 24, InputOutput, CopyFromParent, 0, NULL);
// Tutto bene, ma perchè anzichè a 0,0 la finestra appare dove meglio crede?
      XMapWindow (dis, finestra);
      XRaiseWindow (dis, finestra);
      XSetWindowBackground (dis, finestra, 0x00ff0000);
// Fino a qui tutto bene.... ho la mia finestra con lo sfondo rosso
// Da qui in avanti sto inventando
      gc = XCreateGC (dis, finestra, 0, NULL);
// Immagino che la finestra sia un Drawable, non c'e' scritto da nessuna 
parte ma visto che non da nessun errore....
      XSetForeground (dis, gc, 0x00000000);
      XSetLineAttributes (dis, gc, 1, LineSolid, 0, 0);
      XDrawLine (dis, finestra, gc, 0, 0, 200, 100);
// A questo punto di linee non ce n'è nemmeno l'ombra
      scanf ("%d", &i);  // Attesa... il sistema di gestione degli eventi 
ancora non me lo sono letto.
      XFreeGC (dis, gc);
      XDestroyWindow (dis, finestra);
      XCloseDisplay (dis);
Posto che ho inventato, non riesco a disegnare nella finestra. Cosa sbaglio? 
Se fosse come in Windows il GC dovrei poterlo prendere dalla finestra 
anzichè crearlo io, magari in risposta ad un evento paint, ma in quel 
malloppo, 1.6Mb in un'unica pagina html priva di link non è facile trovare 
una risposta.... Il Win32 sdk di wizoz almeno partiva spiegando il ciclo di 
gestione degli eventi e ti faceva vedere qualche linea di codice che apriva 
una misera finestra, pertendo dal quale poi si poteva sviluppare il 
tutto...
-- 
      ^    ^
oOo (Il Gatto) oOo 

 documentazione migliore e possibilmente dotata di esempi?
...
Non so ne' voglio sapere niente di XLib programming. Ma mi pare che sul sito
della O'Reilly ci fosse l'edizione free di un qualche "XLib reference".
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Take It All, Our Gold, Our Homes, Our Life, But We Didn't Kill 
	    Your Christ! !>- Blind Guardian - The Script For My Requiem

tutto il materiale che ho travoto parte dal sitto sottoriportato
http://www.rahul.net/kenton/xsites.html
il meglio e' quello in francese che ti riporta anche un esempio molto 
facile sull'utilizzo delle principali funzioni e la gestione degli eventi
gli altri sono molti piu' vicini alla programmazione sotto 
motif/lesstif/openmotif
ciao ciao
-- 
	..... il Grande Incubo continua ......
 
                    Jonathan

 
http://www.rahul.net/kenton/xsites.html
Grazie!!!!


 della O'Reilly ci fosse l'edizione free di un qualche "XLib reference".
Ne ho trovati diversi, ma di free non se ne parla proprio.... :-(
Grazie comunque per la segnalazione!


 crede?
come scritto nei siti sopra elencati.. l'ultima parola sul piazzamento
della finestra ce l'ha il window manager in uso.. su uno di quelli cè
anche scritto "mai mettersi a discutere sul piazzamento della finestra" ;)
cmq puoi sempre modificarla successivamente e piazzarla dove meglio credi
per far comparire le linee prova a fare XFlush ( finestra);
Ciao 
Matic

 ricercando le parole "xlib programming" ->
Considera che, per quel che riguarda X, parto da zero, e quindi che la 
Xlib si chiamasse così non lo sapevo proprio!!! Difficile cercare 
qualcosa se non sai di preciso cosa...
