📄 ws.h
字号:
// ----------------------------------------------------------------------------------------------// AutoSpace Window System for Linux/Win32 v0.61// Writed by pontscho / fresh!mindworkz// ----------------------------------------------------------------------------------------------#ifndef GUI_WS_H#define GUI_WS_H#include <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/keysym.h>#include <X11/Xatom.h>#include <X11/extensions/XShm.h>#ifdef HAVE_XDPMS#include <X11/extensions/dpms.h>#endif#define wsKeyReleased 0#define wsKeyPressed 1#define wsShift (1L<<0)#define wsLock (1L<<1)#define wsCtrl (1L<<2)#define wsAlt (1L<<3)#define wsPLMouseButton 1#define wsPMMouseButton 2#define wsPRMouseButton 3#define wsP4MouseButton 4#define wsP5MouseButton 5#define wsRLMouseButton (1 + 128)#define wsRMMouseButton (2 + 128)#define wsRRMouseButton (3 + 128)#define wsR4MouseButton (4 + 128)#define wsR5MouseButton (5 + 128)#define wsEnterWindow 253#define wsLeaveWindow 254#define wsMoveMouse 255#define wsShowMouseCursor 1#define wsMouse 1#define wsHideMouseCursor 0#define wsNoMouse 0#define wsHandleMouseButton 2#define wsHandleMouseMove 4#define wsHideFrame 0#define wsNoFrame 0#define wsShowFrame 1#define wsFrame 1#define wsMaxSize 2#define wsMinSize 4#define wsShowWindow 8#define wsHideWindow 16#define wsOverredirect 32#define wsNoBorder 0#define wsSysName "AutoSpace Window System LiTe"#define wsRGB32 1#define wsBGR32 2#define wsRGB24 3#define wsBGR24 4#define wsRGB16 5#define wsBGR16 6#define wsRGB15 7#define wsBGR15 8#define wsWindowVisible 1#define wsWindowPartialVisible 2#define wsWindowNotVisible 4#define wsWindowMapped 8#define wsWindowUnmapped 16#define wsWindowFocusIn 32#define wsWindowFocusOut 64#define wsWindowExpose 128#define wsWindowRolled 256#define wsWindowClosed 512#define wsNone 0#define wsMapped 1#define wsFocused 2#define wsVisible 3#define wsNotVisible 4#define wsPVisible 5#define wsRolled 6#define wsWMUnknown 0#define wsWMNetWM 1#define wsWMKDE 2#define wsWMIceWM 3#define wsWMWMaker 4typedef void (*wsTReDraw)( void );typedef void (*wsTReSize)( unsigned int X,unsigned int Y,unsigned int width,unsigned int height );typedef void (*wsTIdle)( void );typedef void (*wsTKeyHandler)( int KeyCode,int Type,int Key );typedef void (*wsTMouseHandler)( int Button,int X,int Y,int RX,int RY );typedef void (*wsTDNDHandler)( int num,char ** str );typedef struct{ Window WindowID; Window Parent; int X,Y,Width,Height; int OldX,OldY,OldWidth,OldHeight; int MaxX,MaxY; int isFullScreen; int BorderWidth; int Property; unsigned char * bImage; XImage * xImage; Pixmap Mask; int Decorations; int State; int Visible; int Mapped; int Focused; int Rolled; wsTReDraw ReDraw; wsTReSize ReSize; wsTIdle Idle; wsTKeyHandler KeyHandler; wsTMouseHandler MouseHandler; wsTDNDHandler DandDHandler; int Alt; int Shift; int Control; int NumLock; int CapsLock;// --- Misc ------------------------------------------------------------------------------------- Atom AtomDeleteWindow; Atom AtomTakeFocus; Atom AtomRolle; Atom AtomProtocols; Atom AtomsProtocols[3]; Atom AtomLeaderClient; Atom AtomRemote; Atom AtomWMSizeHint; Atom AtomWMNormalHint; XShmSegmentInfo Shminfo; unsigned char * ImageData; unsigned short int * ImageDataw; unsigned int * ImageDatadw; GC wGC; XGCValues wGCV; unsigned long WindowMask; XVisualInfo VisualInfo; XSetWindowAttributes WindowAttrib; XSizeHints SizeHint; XWMHints WMHints; XFontStruct * Font; int FontHeight; Cursor wsCursor; char wsCursorData[1]; Pixmap wsCursorPixmap; int wsMouseEventType; XColor wsColor;} wsTWindow;extern int wsMaxX;extern int wsMaxY;extern int wsOrgX;extern int wsOrgY;extern Display * wsDisplay;extern int wsScreen;extern Window wsRootWin;extern int wsLayer;extern unsigned char * wsImageData;extern XEvent wsEvent;extern int wsDepthOnScreen;extern int wsRedMask;extern int wsGreenMask;extern int wsBlueMask;extern int wsUseXShm;// ----------------------------------------------------------------------------------------------// wsKeyTable// ----------------------------------------------------------------------------------------------extern unsigned long wsKeyTable[512];extern void wsXDone( void );extern void wsXInit( void* disp );extern int wsGetDepthOnScreen( void );extern void wsDoExit( void );extern void wsMainLoop( void );extern Bool wsEvents( Display * display,XEvent * Event,XPointer arg );extern void wsHandleEvents( void );// ----------------------------------------------------------------------------------------------// wsCrateWindow: create a new window on the screen.// X,Y : window position// wX,hY : window size// bW : window frame size// cV : mouse cursor visible// D : "decoration", visible titlebar, etc ...// ----------------------------------------------------------------------------------------------extern void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,unsigned char D,char * label );extern void wsDestroyWindow( wsTWindow * win );extern void wsMoveWindow( wsTWindow * win,int b,int x, int y );extern void wsResizeWindow( wsTWindow * win,int sx, int sy );extern void wsIconify( wsTWindow win );extern void wsMoveTopWindow( Display * wsDisplay,Window win );extern void wsSetBackground( wsTWindow * win,int color );extern void wsSetForegroundRGB( wsTWindow * win,int r,int g,int b );extern void wsSetBackgroundRGB( wsTWindow * win,int r,int g,int b );#define wsClearWindow( win ) XClearWindow( wsDisplay,win.WindowID )extern void wsSetTitle( wsTWindow * win,char * name );extern void wsVisibleWindow( wsTWindow * win,int show );extern void wsWindowDecoration( wsTWindow * win,long d );extern void wsSetLayer( Display * wsDisplay,Window win, int layer );extern void wsFullScreen( wsTWindow * win );extern void wsPostRedisplay( wsTWindow * win );extern void wsSetShape( wsTWindow * win,char * data );extern void wsSetIcon( Display * dsp,Window win,Pixmap icon,Pixmap mask );// ----------------------------------------------------------------------------------------------// Draw string at x,y with fc ( foreground color ) and bc ( background color ).// ----------------------------------------------------------------------------------------------extern void wsDrawString( wsTWindow win,int x,int y,char * str,int fc,int bc );extern int wsTextWidth( wsTWindow win,char * str );// ----------------------------------------------------------------------------------------------// Show / hide mouse cursor.// ----------------------------------------------------------------------------------------------extern void wsVisibleMouse( wsTWindow * win,int m );extern void wsSetMousePosition( wsTWindow * win,int x, int y );// ----------------------------------------------------------------------------------------------// Image handling// ----------------------------------------------------------------------------------------------extern void wsCreateImage( wsTWindow * win,int Width,int Height );extern void wsConvert( wsTWindow * win,unsigned char * Image,unsigned int Size );extern void wsPutImage( wsTWindow * win );extern void wsResizeImage( wsTWindow * win,int Width,int Height );extern void wsDestroyImage( wsTWindow * win );extern int wsGetOutMask( void );extern void wsScreenSaverOn( Display *mDisplay );extern void wsScreenSaverOff( Display * mDisplay );#define wgIsRect( X,Y,tX,tY,bX,bY ) ( ( (X) > (tX) )&&( (Y) > (tY) )&&( (X) < (bX) )&&( (Y) < (bY) ) )#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -