📄 x.c
字号:
#include <stdlib.h>#include "x.h"void init_X(int scr_w, int scr_h, char title[64]){ XSizeHints size_hints; XFontStruct *font; Colormap cmap; if ((dpy=XOpenDisplay(NULL)) == NULL) perror("Can't connect to X server"); d = XCreateSimpleWindow (dpy,DefaultRootWindow(dpy),0,0,scr_w,scr_h,5,0,0); size_hints.flags = PSize | PMinSize | PMaxSize; size_hints.min_width = scr_w; size_hints.min_height = scr_h; size_hints.max_width = scr_w; size_hints.max_height = scr_h; XSetStandardProperties(dpy,d,title,title,None,0,0,&size_hints); cmap = DefaultColormap(dpy, XDefaultScreen(dpy) ); XSetWindowColormap(dpy, d, cmap); gc = XCreateGC(dpy,d,0,NULL); gc1 = XCreateGC(dpy,d,0,NULL); XMapWindow(dpy, d); XFlush(dpy); buffer = XCreatePixmap(dpy, d, scr_w, scr_h, DefaultDepth(dpy,DefaultScreen(dpy)) ); XSetForeground(dpy,gc,0); XFillRectangle (dpy,buffer,gc,0,0,scr_w,scr_h); XSelectInput ( dpy, d, ExposureMask | KeyPressMask | ButtonPressMask | ButtonReleaseMask | Button1MotionMask | Button2MotionMask | StructureNotifyMask ); delWin = XInternAtom(dpy, "WM_DELETE_WINDOW", False); XSetWMProtocols(dpy, d, &delWin, 1); if ((font=XLoadQueryFont(dpy,"fixed"))==NULL) perror("XLoadQueryFont"); else XSetFont(dpy,gc,font->fid);}void draw_buffer(int scr_x,int scr_y,int scr_w, int scr_h){ XSetTile (dpy, gc1, buffer); XSetFillStyle (dpy, gc1, FillTiled); XFillRectangle (dpy, d, gc1, scr_x, scr_y, scr_w, scr_h);}void clear_buffer(int scr_x,int scr_y,int scr_w, int scr_h){ XSetForeground(dpy,gc,0); XFillRectangle(dpy,buffer,gc,scr_x,scr_y,scr_w,scr_h);}void close_X(int i){ XFreePixmap(dpy,buffer); XFreeGC(dpy, gc); XFreeGC(dpy, gc1); XCloseDisplay(dpy); if(i) exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -