Mercurial > mplayer.hg
view gui/wm/ws.h @ 36120:7cfe91ac8df8
sync with en/mplayer.1 rev. 36213
author | jrash |
---|---|
date | Sat, 04 May 2013 04:09:21 +0000 |
parents | eba3a00b9c92 |
children | 63e8bfb208c6 |
line wrap: on
line source
/* * This file is part of MPlayer. * * MPlayer is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * MPlayer is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with MPlayer; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * based on: AutoSpace Window System for Linux/Win32, * written by pontscho/fresh!mindworkz */ #ifndef MPLAYER_GUI_WS_H #define MPLAYER_GUI_WS_H #include <X11/Xlib.h> #include <X11/Xutil.h> #include "gui/dialog/dialog.h" #include "config.h" #ifdef HAVE_SHM #include <X11/extensions/XShm.h> #endif #define wsKeyReleased 0 #define wsKeyPressed 1 #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 wsHideMouseCursor 0 #define wsHandleMouseButton 2 #define wsHandleMouseMove 4 #define wsHideFrame 0 #define wsShowFrame 1 #define wsMaxSize 2 #define wsMinSize 4 #define wsShowWindow 8 #define wsHideWindow 16 #define wsOverredirect 32 #define wsWaitMap 64 #define wsAspect 128 #define wsNone 0 #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 wsNo 0 #define wsMapped 1 #define wsFocused 2 #define wsVisible 3 #define wsNotVisible 4 #define wsPVisible 5 #define wsRolled 6 typedef void (*wsTDrawHandler)(void); typedef void (*wsTMouseHandler)(int Button, int X, int Y, int RX, int RY); typedef void (*wsTKeyHandler)(int KeyCode, int Type, int Key); typedef void (*wsTDNDHandler)(int num, char **str); typedef struct { Window WindowID; Window Parent; int X, Y, Width, Height; int OldX, OldY, OldWidth, OldHeight; Bool isFullScreen; int Property; unsigned char *bImage; XImage *xImage; Pixmap Mask; Bool Decoration; int State; int Visible; int Mapped; int Focused; int Rolled; wsTDrawHandler DrawHandler; wsTMouseHandler MouseHandler; wsTKeyHandler KeyHandler; wsTDNDHandler DNDHandler; 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 AtomWMSizeHint; Atom AtomWMNormalHint; #ifdef HAVE_SHM XShmSegmentInfo Shminfo; #endif unsigned char *ImageData; unsigned short int *ImageDataw; unsigned int *ImageDatadw; GC wGC; unsigned long WindowMask; XVisualInfo VisualInfo; XSetWindowAttributes WindowAttrib; XWMHints WMHints; Cursor wsCursor; char wsCursorData[1]; Pixmap wsCursorPixmap; int wsMouseEventType; XColor wsColor; } wsWindow; extern int wsMaxX; extern int wsMaxY; extern int wsOrgX; extern int wsOrgY; extern Display *wsDisplay; // ---------------------------------------------------------------------------------------------- void wsDone(void); void wsInit(Display *display); void wsSetErrorHandler(void); void wsMouseAutohide(void); void wsEvent(XEvent *event); void wsEvents(void); void wsWindowCreate(wsWindow *win, int x, int y, int w, int h, int p, int c, char *label); void wsWindowDestroy(wsWindow *win); void wsWindowMove(wsWindow *win, Bool abs, int x, int y); void wsWindowMoveWithin(wsWindow *win, Bool abs, int x, int y); void wsWindowResize(wsWindow *win, int w, int h); void wsWindowIconify(wsWindow *win); void wsWindowRaiseTop(Display *display, Window Win); void wsWindowBackground(wsWindow *win, int r, int g, int b); void wsWindowVisibility(wsWindow *win, int vis); void wsWindowLayer(Display *display, Window Win, Bool fullscreen); void wsWindowFullscreen(wsWindow *win); void wsWindowRedraw(wsWindow *win); void wsWindowShape(wsWindow *win, char *data); void wsWindowIcon(Display *display, Window Win, guiIcon_t *icon); // ---------------------------------------------------------------------------------------------- // Show / hide mouse cursor. // ---------------------------------------------------------------------------------------------- void wsMouseVisibility(wsWindow *win, int vis); // ---------------------------------------------------------------------------------------------- // Image handling // ---------------------------------------------------------------------------------------------- void wsImageCreate(wsWindow *win, int w, int h); void wsImageRender(wsWindow *win, unsigned char *img); void wsImageDraw(wsWindow *win); void wsImageResize(wsWindow *win, int w, int h); void wsImageDestroy(wsWindow *win); #endif /* MPLAYER_GUI_WS_H */