mirror of https://github.com/buggins/dlangui.git
52 lines
1.8 KiB
D
52 lines
1.8 KiB
D
module std.c.linux.X11.example;
|
|
|
|
/* this an example for this binding*/
|
|
/* please read README file before */
|
|
|
|
/* compile with: dmd example.d Xlib.d X.d -L-lX11*/
|
|
|
|
import std.c.linux.X11.Xlib;
|
|
|
|
version(Tango)
|
|
{
|
|
import tango.stdc.stdio;
|
|
}
|
|
else
|
|
{
|
|
import std.c.stdio;
|
|
}
|
|
|
|
int main(char[][] args)
|
|
{
|
|
Display* display = XOpenDisplay(null); //Open default display
|
|
Window window = XCreateSimpleWindow( //create a simple windows
|
|
display, // display
|
|
DefaultRootWindow(display), // parent window
|
|
0, 0, 200, 100, // x, y, w, h
|
|
0,0x0,0x000000FF // border_width,boder_color,back_color
|
|
);
|
|
XMapWindow(display, window); //map the window
|
|
XRaiseWindow(display, window); //show the window
|
|
XStoreName(display,window,"Hello Window\0"); //set window name , don't forget /0 term char !
|
|
XFlush(display); // flush X server
|
|
|
|
//wait for a enter pressed (in fact you need to wait for MapNotify event before drawing...)
|
|
printf("press enter to show window content\0");
|
|
getchar();
|
|
|
|
XGCValues values;
|
|
values.foreground=0xFFFFFF;
|
|
values.background=0x00FF00;
|
|
GC gc=XCreateGC(display,window,GCMask.GCForeground | GCMask.GCBackground,&values); //create zone for drawing
|
|
char* chaine="hello world";
|
|
XDrawString(display, window,gc, 30,50,chaine, 11); //draw string
|
|
XDrawRectangle(display,window,gc,20,20,150,50); //draw rectangle
|
|
XFlush(display); //flush X server
|
|
printf("press enter to close program\0");
|
|
getchar(); //wait for a enter pressed to close program
|
|
XUnmapWindow(display, window); // unmap the window
|
|
XDestroyWindow(display, window); //destroy the window
|
|
XCloseDisplay(display); //close the display
|
|
return 0;
|
|
};
|