Xlib
Ngoại quan
![本页使用了标题或全文手工转换](https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
Khai phát giả | X.Org cơ kim hội |
---|---|
Thủ thứ phát bố | Đại ước 1985 niên |
Đương tiền bản bổn |
|
Nguyên đại mã khố | |
Biên trình ngữ ngôn | C |
Loại hình | Khố |
Hứa khả hiệp nghị |
|
Võng trạm | www |
XlibThị nhất chủngX Window SystemHiệp định đích dụng hộ đoan, dĩC ngữ ngônSoạn tả. Kỳ công năng thị dữ X server câu thông. Giá dạng đích công năng khả dĩ nhượng trình thức nhân viên soạn tả trình thức thời, vô tu liễu giải kỳ hiệp định đích tế tiết. Đãn thậm thiếu ứng dụng trình thức hội trực tiếp sử dụng Xlib; thông thường thị thấu quá kỳ tha đích hàm thức khố lai hô khiếu Xlib dụng dĩ đề cungBộ kiện công cụ tương( widget toolkits ):
![](https://upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Xlib_and_XCB_in_the_X_Window_System_graphics_stack.svg/300px-Xlib_and_XCB_in_the_X_Window_System_graphics_stack.svg.png)
Xlib phát biểu ô 1985 niên, mục tiền sử dụng tại hứa đa đíchUnix-like tác nghiệp hệ thống thượng.
Mục tiềnXCBHữu khả năng thủ đại Xlib.
Tư liêu hình biệt
[Biên tập]Xlib chủ yếu đích tư liêu hình biệt thịDisplay
[2]Kết cấu.
Phạm lệ
[Biên tập]Hạ diện thị nhất cá XLib đích phạm liệt, sản sinh nhất cá thị song.
/*
Simple Xlib application drawing a box in a window.
gcc input.c -o output -lX11
*/
#include<X11/Xlib.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
intmain(void)
{
Display*d;
Windoww;
XEvente;
char*msg="Hello, World!";
ints;
booldone=false;
/* open connection with the server */
d=XOpenDisplay(NULL);
if(d==NULL){
fprintf(stderr,"Cannot open display\n");
exit(1);
}
s=DefaultScreen(d);
/* create window */
w=XCreateSimpleWindow(d,RootWindow(d,s),10,10,640,480,0,
BlackPixel(d,s),WhitePixel(d,s));
/* register interest in the delete window message */
AtomwmDeleteMessage=XInternAtom(d,"WM_DELETE_WINDOW",False);
XSetWMProtocols(d,w,&wmDeleteMessage,1);
/* select kind of events we are interested in */
XSelectInput(d,w,ExposureMask|KeyPressMask|StructureNotifyMask);
/* map (show) the window */
XMapWindow(d,w);
/* event loop */
while(!done){
XNextEvent(d,&e);
/* draw or redraw the window */
if(e.type==Expose){
XFillRectangle(d,w,DefaultGC(d,s),20,20,10,10);
XDrawString(d,w,DefaultGC(d,s),50,50,msg,strlen(msg));
}
/* exit on key press */
switch(e.type){
caseKeyPress:
XDestroyWindow(d,w);
break;
caseDestroyNotify:
done=true;
break;
caseClientMessage:
if(e.xclient.data.l[0]==wmDeleteMessage){
done=true;
}
break;
}
}
/* close connection to server */
XCloseDisplay(d);
return0;
}
Chú thích
[Biên tập]- ^https://lists.x.org/archives/xorg-announce/2024-April/003501.html;Kiểm tác nhật kỳ: 2024 niên 4 nguyệt 7 nhật; tác giả tính danh tự phù xuyến: Alan Coopersmith.
- ^Display Structure on freedesktop CVS.Tip search for: typedef struct _XDisplay Display.[2009-07-09].(Nguyên thủy nội dungTồn đương vu 2008-01-31 ).
Ngoại bộ liên kết
[Biên tập]- Xlib Programming Manual
- Manual pages for all Xlib functions(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
- Kenton Lee's pages on X Window and Motif(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
- A short tutorial on Xlib(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
- A longer tutorial on Xlib
- Using Xlib for creating a screensaver module(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
- Simple X11 toolkit for learning Xlib
|