Mi dispiace non poterti aiutare troppo sulle librerie X11, fortunatamente c'e' stan molto piu' preparato.
Per imparare queste librerie penso che mi occorrono alcuni giorni di studio.
Cmq ho trovato su questo sito
http://213.92.21.88/meo/white/programmazione/ditelo.htm
il seguente listato:
- Codice:
/*
* iLoveYouX.c
*
*/
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include
Display *display;
int screen_num;
void main(argc, argv)
int argc;
char **argv;
{
Window win;
unsigned int width = 300, height = 300;
int x =0, y =0;
unsigned int border_width = 4;
unsigned int display_width, display_height;
char *window_name = "I Love You X Window Program";
int count;
XEvent report;
GC gc;
XFontStruct *font_info;
char *display_name = NULL;
unsigned long valuemask = 0;
XGCValues values;
char *fontname = "9x15";
if ( (display=XOpenDisplay(display_name)) == NULL )
{
(void) fprintf( stderr, "Cannot connect to X server %s\n",
XDisplayName(display_name));
exit( -1 );
}
screen_num = DefaultScreen(display);
display_width = DisplayWidth(display, screen_num);
display_height = DisplayHeight(display, screen_num);
win = XCreateSimpleWindow(display, RootWindow(display,screen_num),
x, y, width, height, border_width, BlackPixel(display,
screen_num), WhitePixel(display,screen_num));
XSelectInput(display, win, ExposureMask | KeyPressMask |
ButtonPressMask | StructureNotifyMask);
if ((*font_info = XLoadQueryFont(display,fontname)) == NULL)
{
(void) fprintf( stderr, "Cannot open 9x15 font\n");
exit( -1 );
}
gc = XCreateGC(display, win, valuemask, &values);
XSetFont(display, gc, font_info->fid);
XMapWindow(display, win);
while (1) {
XNextEvent(display, &report);
switch (report.type) {
case Expose:
if (report.xexpose.count != 0)
break;
for (i=0;i<3;i++)
XDrawString(display, win, gc, (i+1)*10, (i+2)*10,
"I love You!", strlen("I love You!");
break;
case ConfigureNotify:
width = report.xconfigure.width;
height = report.xconfigure.height;
break;
case ButtonPress:
case KeyPress:
XUnloadFont(display, font_info->fid);
XFreeGC(display, gc);
XCloseDisplay(display);
exit(1);
default:
break;
}
}
}
credo che utilizzi una font standard 9x15.
A limite questo programma potrebbe essere un punto di partenza. (Non l'ho compilato)
Ora vi chiedo (stan e prime_number) se esistono delle font di default, senza aggiungerne altre ? (Per.es. 9x15)
E' necessario per te (prime_number), se esistono gia' font di default, aggiungerne altre ?
Se si, e se si riesce a compilare questo programma, si puo' provare ad aggiungere una font non standard.
In questo modo puoi anche prelevare le info da qui' e copiarle nel tuo programma e sono disponibile nel darti un aiuto a farlo.
Eugenio