// ---------------------------------------------------------------------------------------------- // AutoSpace Window System for Linux/Win32 v0.61 // Writed by pontscho / fresh!mindworkz // ---------------------------------------------------------------------------------------------- #ifndef MPLAYER_GUI_WS_H #define MPLAYER_GUI_WS_H #include #include #include #include #include #ifdef HAVE_XDPMS #include #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 4 typedef 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 /* MPLAYER_GUI_WS_H */