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 thủy 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 nghị đích khách 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 tự nhân viên soạn tả trình tự thời, vô tu liễu giải kỳ hiệp nghị đí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 sổ khố lai điều dụng 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 vu 1985 niên, mục tiền sử dụng tại hứa đa đíchUnix-like thao tác hệ thống thượng.
Mục tiềnXCBHữu khả năng thủ đại Xlib.
Tư liêu loại hình
[Biên tập]Xlib chủ yếu đích tư liêu loại hình thịDisplay
[2]Kết cấu.
Kỳ 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]- ^"[ANNOUNCElibX11 1.8.10 "]; tác giả tính danh tự phù xuyến: Alan Coopersmith; kiểm tác nhật kỳ: 2024 niên 7 nguyệt 29 nhật.
- ^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 tiếp
[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
|