📄 serv.h
字号:
#ifndef _SERV_H
#define _SERV_H
/*
* Copyright (c) 2000 Greg Haerr <greg@censoft.com>
* Copyright (c) 2000 Alex Holden <alex@linuxhacker.org>
* Copyright (c) 1991 David I. Bell
* Permission is granted to use, distribute, or modify this source,
* provided that this copyright notice remains intact.
*
* Private definitions for the graphics server.
* These definitions are not to be used by clients.
*/
#if defined(__ECOS) && !defined(_NO_SVR_MAPPING)
//
// Since eCos is a single task, multi-threaded environment, the
// server and the client code share the same namespace. This means
// that server functions which are represented by dispatchers in
// the client code need to have unique names, thus this remapping.
//
#define GrArcAngle SVR_GrArcAngle
#define GrArc SVR_GrArc
#define GrArea SVR_GrArea
#define GrBell SVR_GrBell
#define GrBitmap SVR_GrBitmap
#define GrCheckNextEvent SVR_GrCheckNextEvent
#define GrClearWindow SVR_GrClearWindow
#define GrClose SVR_GrClose
#define GrCloseWindow SVR_GrCloseWindow
#define GrCopyArea SVR_GrCopyArea
#define GrCopyGC SVR_GrCopyGC
#define GrCreateFont SVR_GrCreateFont
#define GrDestroyFont SVR_GrDestroyFont
#define GrDestroyGC SVR_GrDestroyGC
#define GrDestroyRegion SVR_GrDestroyRegion
#define GrDestroyWindow SVR_GrDestroyWindow
#define GrDrawImageBits SVR_GrDrawImageBits
#define GrDrawImageFromFile SVR_GrDrawImageFromFile
#define GrDrawImageToFit SVR_GrDrawImageToFit
#define GrEllipse SVR_GrEllipse
#define GrEmptyRegion SVR_GrEmptyRegion
#define GrEqualRegion SVR_GrEqualRegion
#define GrFillEllipse SVR_GrFillEllipse
#define GrFillPoly SVR_GrFillPoly
#define GrFillRect SVR_GrFillRect
#define GrFindColor SVR_GrFindColor
#define GrFreeImage SVR_GrFreeImage
#define GrGetFocus SVR_GrGetFocus
#define GrGetFontInfo SVR_GrGetFontInfo
#define GrGetGCInfo SVR_GrGetGCInfo
#define GrGetGCTextSize SVR_GrGetGCTextSize
#define GrGetImageInfo SVR_GrGetImageInfo
#define GrGetRegionBox SVR_GrGetRegionBox
#define GrGetScreenInfo SVR_GrGetScreenInfo
#define GrGetSelectionOwner SVR_GrGetSelectionOwner
#define GrGetSysColor SVR_GrGetSysColor
#define GrGetSystemPalette SVR_GrGetSystemPalette
#define GrGetWindowInfo SVR_GrGetWindowInfo
#define GrGetWMProperties SVR_GrGetWMProperties
#define GrInjectKeyboardEvent SVR_GrInjectKeyboardEvent
#define GrInjectPointerEvent SVR_GrInjectPointerEvent
#define GrIntersectRegion SVR_GrIntersectRegion
#define GrKillWindow SVR_GrKillWindow
#define GrLine SVR_GrLine
#define GrLoadImageFromFile SVR_GrLoadImageFromFile
#define GrLowerWindow SVR_GrLowerWindow
#define GrMapWindow SVR_GrMapWindow
#define GrMoveCursor SVR_GrMoveCursor
#define GrMoveWindow SVR_GrMoveWindow
#define GrNewGC SVR_GrNewGC
#define GrNewInputWindow SVR_GrNewInputWindow
#define GrNewPixmap SVR_GrNewPixmap
#define GrNewPolygonRegion SVR_GrNewPolygonRegion
#define GrNewRegion SVR_GrNewRegion
#define GrNewWindow SVR_GrNewWindow
#define GrOffsetRegion SVR_GrOffsetRegion
#define GrOpen SVR_GrOpen
#define GrPeekEvent SVR_GrPeekEvent
#define GrPointInRegion SVR_GrPointInRegion
#define GrPoints SVR_GrPoints
#define GrPoint SVR_GrPoint
#define GrPoly SVR_GrPoly
#define GrRaiseWindow SVR_GrRaiseWindow
#define GrReadArea SVR_GrReadArea
#define GrRectInRegion SVR_GrRectInRegion
#define GrRect SVR_GrRect
#define GrReparentWindow SVR_GrReparentWindow
#define GrRequestClientData SVR_GrRequestClientData
#define GrResizeWindow SVR_GrResizeWindow
#define GrSelectEvents SVR_GrSelectEvents
#define GrSendClientData SVR_GrSendClientData
#define GrSetBackgroundPixmap SVR_GrSetBackgroundPixmap
#define GrSetBorderColor SVR_GrSetBorderColor
#define GrSetCursor SVR_GrSetCursor
#define GrSetFocus SVR_GrSetFocus
#define GrSetFontAttr SVR_GrSetFontAttr
#define GrSetFontRotation SVR_GrSetFontRotation
#define GrSetFontSize SVR_GrSetFontSize
#define GrSetGCBackground SVR_GrSetGCBackground
#define GrSetGCFont SVR_GrSetGCFont
#define GrSetGCForeground SVR_GrSetGCForeground
#define GrSetGCMode SVR_GrSetGCMode
#define GrSetGCRegion SVR_GrSetGCRegion
#define GrSetGCUseBackground SVR_GrSetGCUseBackground
#define GrSetScreenSaverTimeout SVR_GrSetScreenSaverTimeout
#define GrSetSelectionOwner SVR_GrSetSelectionOwner
#define GrSetSystemPalette SVR_GrSetSystemPalette
#define GrSetWMProperties SVR_GrSetWMProperties
#define GrSubtractRegion SVR_GrSubtractRegion
#define GrText SVR_GrText
#define GrUnionRectWithRegion SVR_GrUnionRectWithRegion
#define GrUnionRegion SVR_GrUnionRegion
#define GrUnmapWindow SVR_GrUnmapWindow
#define GrXorRegion SVR_GrXorRegion
#define GrDelay SVR_GrDelay
#define GrSetGCClipOrigin SVR_GrSetGCClipOrigin
#define GrClearArea SVR_GrClearArea
#define GrNewCursor SVR_GrNewCursor
#define GrDestroyCursor SVR_GrDestroyCursor
#define GrSetWindowCursor SVR_GrSetWindowCursor
#define GrDrawImageFromBuffer SVR_GrDrawImageFromBuffer
#define GrLoadImageFromBuffer SVR_GrLoadImageFromBuffer
#define GrGetFontList SVR_GrGetFontList
#define GrFreeFontList SVR_GrFreeFontList
#define GrQueryTree SVR_GrQueryTree
#define GrCreateTimer SVR_GrCreateTimer
#define GrDestroyTimer SVR_GrDestroyTimer
#define GrSetPortraitMode SVR_GrSetPortraitMode
#endif
#include "nano-X.h"
#include "device.h"
/*
* Drawing types.
*/
typedef int GR_DRAW_TYPE;
#define GR_DRAW_TYPE_NONE 0 /* none or error */
#define GR_DRAW_TYPE_WINDOW 1 /* windows */
#define GR_DRAW_TYPE_PIXMAP 2 /* pixmaps */
#define GR_MAX_MODE MWMODE_MAX
/*
* List of elements for events.
*/
typedef struct gr_event_list GR_EVENT_LIST;
struct gr_event_list {
GR_EVENT_LIST *next; /* next element in list */
GR_EVENT event; /* event */
};
/*
* Data structure to keep track of state of clients.
*/
typedef struct gr_client GR_CLIENT;
struct gr_client {
int id; /* client id and socket descriptor */
GR_EVENT_LIST *eventhead; /* head of event chain (or NULL) */
GR_EVENT_LIST *eventtail; /* tail of event chain (or NULL) */
GR_CLIENT *next; /* the next client in the list */
GR_CLIENT *prev; /* the previous client in the list */
int waiting_for_event; /* used to implement GrGetNextEvent*/
char *shm_cmds;
int shm_cmds_size;
int shm_cmds_shmid;
unsigned long processid; /* client process id*/
};
/*
* Structure to remember clients associated with events.
*/
typedef struct gr_event_client GR_EVENT_CLIENT;
struct gr_event_client {
GR_EVENT_CLIENT *next; /* next interested client or NULL */
GR_EVENT_MASK eventmask; /* events client wants to see */
GR_CLIENT *client; /* client who is interested */
};
/*
* Structure to remember graphics contexts.
*/
typedef struct gr_gc GR_GC;
struct gr_gc {
GR_GC_ID id; /* graphics context id */
int mode; /* drawing mode */
GR_REGION_ID regionid; /* current clipping region */
int xoff; /* X offset for the clip region */
int yoff; /* Y offset for the clip region */
GR_FONT_ID fontid; /* current font id*/
GR_COLOR foreground; /* foreground color */
GR_COLOR background; /* background color */
GR_BOOL usebackground; /* actually display the background */
GR_BOOL changed; /* graphics context has been changed */
GR_CLIENT *owner; /* client that created it */
GR_GC *next; /* next graphics context */
};
/*
* Structure to remember regions.
*/
typedef struct gr_region GR_REGION;
struct gr_region {
MWCLIPREGION * rgn;
GR_REGION_ID id;
GR_CLIENT * owner; /* client that created it */
GR_REGION * next;
};
/*
* Structure to remember fonts.
*/
typedef struct gr_font GR_FONT;
struct gr_font {
PMWFONT pfont; /* font*/
int fontsize; /* font size*/
GR_FONT_ID id; /* font id*/
GR_CLIENT * owner; /* client that created it */
GR_FONT * next; /* next font*/
};
/*
* Structure to remember images.
*/
typedef struct gr_image GR_IMAGE;
struct gr_image {
GR_IMAGE_ID id;
GR_CLIENT * owner; /* client that created it */
GR_IMAGE * next;
};
/*
* Cursor structure.
*/
typedef struct gr_cursor GR_CURSOR;
struct gr_cursor {
GR_CURSOR_ID id; /* cursor id*/
GR_CLIENT *owner; /* client that created it*/
GR_CURSOR *next;
MWCURSOR cursor; /* mwin engine cursor structure*/
};
/*
* Structure to remember selection owner and mime types it can produce.
*/
typedef struct {
GR_WINDOW_ID wid;
GR_CHAR *typelist;
} GR_SELECTIONOWNER;
/*
* Structure to remember timers.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -