From http://www.jwz.org/xscreensaver/xscreensaver-5.33.tar.gz
[xscreensaver] / OSX / jwxyz.h
index 0d7ebe8b18e302ecb974946db05e156a96e0a968..69b716b248bbb53648818d179fec34faab40f626 100644 (file)
@@ -1,4 +1,4 @@
-/* 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
@@ -29,6 +29,7 @@ typedef unsigned long Time;
 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;
@@ -46,6 +47,7 @@ typedef struct jwxyz_XWindowAttributes        XWindowAttributes;
 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;
@@ -233,6 +235,20 @@ typedef unsigned long                      XtInputMask;
 #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 */
@@ -250,12 +266,14 @@ typedef unsigned long                     XtInputMask;
 // #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)
@@ -292,6 +310,10 @@ extern int XScreenNumberOfScreen (Screen *);
 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);
@@ -424,6 +446,7 @@ extern int XUnloadFont (Display *, Font);
 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);
@@ -441,12 +464,15 @@ extern int Xutf8TextExtents (XFontSet, const char *, int num_bytes,
                              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 *);
@@ -725,6 +751,11 @@ struct jwxyz_XCharStruct {
 #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 */
@@ -741,10 +772,8 @@ struct jwxyz_XFontStruct {
   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 */