-/* xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1991-2015 Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
typedef unsigned int KeySym;
typedef unsigned int KeyCode;
typedef unsigned int VisualID;
+typedef unsigned long Atom; /* Must be as large as a char *. */
typedef struct jwxyz_Display Display;
typedef struct jwxyz_Screen Screen;
typedef struct jwxyz_XrmOptionDescRec XrmOptionDescRec;
typedef struct jwxyz_XrmDatabase * XrmDatabase;
typedef struct jwxyz_XImage XImage;
+typedef struct jwxyz_XFontProp XFontProp;
typedef struct jwxyz_XFontStruct XFontStruct;
typedef struct jwxyz_Font * Font;
typedef struct jwxyz_XFontSet * XFontSet;
#define XK_End 0xFF57
#define XK_Begin 0xFF58
+#define XK_F1 0xFFBE
+#define XK_F2 0xFFBF
+#define XK_F3 0xFFC0
+#define XK_F4 0xFFC1
+#define XK_F5 0xFFC2
+#define XK_F6 0xFFC3
+#define XK_F7 0xFFC4
+#define XK_F8 0xFFC5
+#define XK_F9 0xFFC6
+#define XK_F10 0xFFC7
+#define XK_F11 0xFFC8
+#define XK_F12 0xFFC9
+
+
#define GXclear 0x0 /* 0 */
#define GXand 0x1 /* src AND dst */
// #define GXandReverse 0x2 /* src AND NOT dst */
// #define GXnand 0xe /* NOT src OR NOT dst */
#define GXset 0xf /* 1 */
+#define XA_FONT 18
+
#define DefaultScreen(dpy) (0)
-#define BlackPixelOfScreen(s) (0xFF000000)
-#define WhitePixelOfScreen(s) (0xFFFFFFFF)
-#define BlackPixel(dpy,n) BlackPixelOfScreen(0)
-#define WhitePixel(dpy,n) WhitePixelOfScreen(0)
-#define CellsOfScreen(s) (0x00FFFFFF)
+#define BlackPixelOfScreen XBlackPixelOfScreen
+#define WhitePixelOfScreen XWhitePixelOfScreen
+#define BlackPixel(dpy,n) BlackPixelOfScreen(ScreenOfDisplay(dpy,n))
+#define WhitePixel(dpy,n) WhitePixelOfScreen(ScreenOfDisplay(dpy,n))
+#define CellsOfScreen XCellsOfScreen
#define XFree(x) free(x)
#define BitmapPad(dpy) (8)
#define BitmapBitOrder(dpy) (MSBFirst)
extern int XDisplayWidth (Display *, int);
extern int XDisplayHeight (Display *, int);
+unsigned long XBlackPixelOfScreen(Screen *);
+unsigned long XWhitePixelOfScreen(Screen *);
+unsigned long XCellsOfScreen(Screen *);
+
extern int XDrawPoint (Display *, Drawable, GC, int x, int y);
extern int XDrawPoints (Display *, Drawable, GC, XPoint *, int n, int mode);
extern int XDrawSegments (Display *, Drawable, GC, XSegment *, int n);
extern int XTextExtents (XFontStruct *, const char *, int length,
int *dir_ret, int *ascent_ret, int *descent_ret,
XCharStruct *overall_ret);
+extern char * jwxyz_unicode_character_name (Font, unsigned long uc);
extern int XTextExtents16 (XFontStruct *, const XChar2b *, int length,
int *dir_ret, int *ascent_ret, int *descent_ret,
XCharStruct *overall_ret);
XRectangle *overall_logical_return);
extern void Xutf8DrawString (Display *, Drawable, XFontSet, GC,
int x, int y, const char *, int num_bytes);
+extern const char *jwxyz_nativeFontName (Font, float *size);
extern Pixmap XCreatePixmap (Display *, Drawable,
unsigned int width, unsigned int height,
unsigned int depth);
extern int XFreePixmap (Display *, Pixmap);
+extern char *XGetAtomName (Display *, Atom);
+
// Xt timers and fds
extern XtAppContext XtDisplayToApplicationContext (Display *);
typedef void (*XtTimerCallbackProc) (XtPointer closure, XtIntervalId *);
#endif
};
+struct jwxyz_XFontProp {
+ Atom name;
+ unsigned long card32; /* Careful: This holds (32- or 64-bit) pointers. */
+};
+
struct jwxyz_XFontStruct {
#if 0
XExtData *ext_data; /* hook for extension to hang data */
Bool all_chars_exist; /* flag if all characters have non-zero size*/
#endif
unsigned default_char; /* char to print for undefined character */
-#if 0
int n_properties; /* how many properties there are */
XFontProp *properties; /* pointer to array of additional properties*/
-#endif
XCharStruct min_bounds; /* minimum bounds over all existing char*/
XCharStruct max_bounds; /* maximum bounds over all existing char*/
XCharStruct *per_char; /* first_char to last_char information */