jdk/src/solaris/native/sun/awt/Xrandr.h
changeset 2 90ce3da70b43
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 /*
       
     2  * reserved comment block
       
     3  * DO NOT REMOVE OR ALTER!
       
     4  */
       
     5 /*
       
     6  * $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $
       
     7  *
       
     8  * Copyright © 2000 Compaq Computer Corporation, Inc.
       
     9  * Copyright © 2002 Hewlett-Packard Company, Inc.
       
    10  *
       
    11  * Permission to use, copy, modify, distribute, and sell this software and its
       
    12  * documentation for any purpose is hereby granted without fee, provided that
       
    13  * the above copyright notice appear in all copies and that both that
       
    14  * copyright notice and this permission notice appear in supporting
       
    15  * documentation, and that the name of Compaq not be used in advertising or
       
    16  * publicity pertaining to distribution of the software without specific,
       
    17  * written prior permission.  HP makes no representations about the
       
    18  * suitability of this software for any purpose.  It is provided "as is"
       
    19  * without express or implied warranty.
       
    20  *
       
    21  * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
       
    22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
       
    23  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
       
    24  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
       
    25  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
       
    26  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
       
    27  *
       
    28  * Author:  Jim Gettys, HP Labs, HP.
       
    29  */
       
    30 
       
    31 #ifndef _XRANDR_H_
       
    32 #define _XRANDR_H_
       
    33 
       
    34 /*#include <X11/extensions/randr.h>*/
       
    35 #include "randr.h"
       
    36 
       
    37 #include <X11/Xfuncproto.h>
       
    38 
       
    39 _XFUNCPROTOBEGIN
       
    40 
       
    41 
       
    42 typedef struct {
       
    43     int width, height;
       
    44     int mwidth, mheight;
       
    45 } XRRScreenSize;
       
    46 
       
    47 /*
       
    48  *  Events.
       
    49  */
       
    50 
       
    51 typedef struct {
       
    52     int type;                   /* event base */
       
    53     unsigned long serial;       /* # of last request processed by server */
       
    54     Bool send_event;            /* true if this came from a SendEvent request */
       
    55     Display *display;           /* Display the event was read from */
       
    56     Window window;              /* window which selected for this event */
       
    57     Window root;                /* Root window for changed screen */
       
    58     Time timestamp;             /* when the screen change occurred */
       
    59     Time config_timestamp;      /* when the last configuration change */
       
    60     SizeID size_index;
       
    61     SubpixelOrder subpixel_order;
       
    62     Rotation rotation;
       
    63     int width;
       
    64     int height;
       
    65     int mwidth;
       
    66     int mheight;
       
    67 } XRRScreenChangeNotifyEvent;
       
    68 
       
    69 
       
    70 /* internal representation is private to the library */
       
    71 typedef struct _XRRScreenConfiguration XRRScreenConfiguration;
       
    72 
       
    73 Bool XRRQueryExtension (Display *dpy, int *event_basep, int *error_basep);
       
    74 Status XRRQueryVersion (Display *dpy,
       
    75                             int     *major_versionp,
       
    76                             int     *minor_versionp);
       
    77 
       
    78 XRRScreenConfiguration *XRRGetScreenInfo (Display *dpy,
       
    79                                           Drawable draw);
       
    80 
       
    81 void XRRFreeScreenConfigInfo (XRRScreenConfiguration *config);
       
    82 
       
    83 /*
       
    84  * Note that screen configuration changes are only permitted if the client can
       
    85  * prove it has up to date configuration information.  We are trying to
       
    86  * insist that it become possible for screens to change dynamically, so
       
    87  * we want to ensure the client knows what it is talking about when requesting
       
    88  * changes.
       
    89  */
       
    90 Status XRRSetScreenConfig (Display *dpy,
       
    91                            XRRScreenConfiguration *config,
       
    92                            Drawable draw,
       
    93                            int size_index,
       
    94                            Rotation rotation,
       
    95                            Time timestamp);
       
    96 
       
    97 /* added in v1.1, sorry for the lame name */
       
    98 Status XRRSetScreenConfigAndRate (Display *dpy,
       
    99                                   XRRScreenConfiguration *config,
       
   100                                   Drawable draw,
       
   101                                   int size_index,
       
   102                                   Rotation rotation,
       
   103                                   short rate,
       
   104                                   Time timestamp);
       
   105 
       
   106 
       
   107 Rotation XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation);
       
   108 
       
   109 Time XRRConfigTimes (XRRScreenConfiguration *config, Time *config_timestamp);
       
   110 
       
   111 XRRScreenSize *XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes);
       
   112 
       
   113 short *XRRConfigRates (XRRScreenConfiguration *config, int sizeID, int *nrates);
       
   114 
       
   115 SizeID XRRConfigCurrentConfiguration (XRRScreenConfiguration *config,
       
   116                               Rotation *rotation);
       
   117 
       
   118 short XRRConfigCurrentRate (XRRScreenConfiguration *config);
       
   119 
       
   120 int XRRRootToScreen(Display *dpy, Window root);
       
   121 
       
   122 /*
       
   123  * returns the screen configuration for the specified screen; does a lazy
       
   124  * evalution to delay getting the information, and caches the result.
       
   125  * These routines should be used in preference to XRRGetScreenInfo
       
   126  * to avoid unneeded round trips to the X server.  These are new
       
   127  * in protocol version 0.1.
       
   128  */
       
   129 
       
   130 
       
   131 XRRScreenConfiguration *XRRScreenConfig(Display *dpy, int screen);
       
   132 XRRScreenConfiguration *XRRConfig(Screen *screen);
       
   133 void XRRSelectInput(Display *dpy, Window window, int mask);
       
   134 
       
   135 /*
       
   136  * the following are always safe to call, even if RandR is not implemented
       
   137  * on a screen
       
   138  */
       
   139 
       
   140 
       
   141 Rotation XRRRotations(Display *dpy, int screen, Rotation *current_rotation);
       
   142 XRRScreenSize *XRRSizes(Display *dpy, int screen, int *nsizes);
       
   143 short *XRRRates (Display *dpy, int screen, int sizeID, int *nrates);
       
   144 Time XRRTimes (Display *dpy, int screen, Time *config_timestamp);
       
   145 
       
   146 
       
   147 /*
       
   148  * intended to take RRScreenChangeNotify,  or
       
   149  * ConfigureNotify (on the root window)
       
   150  * returns 1 if it is an event type it understands, 0 if not
       
   151  */
       
   152 int XRRUpdateConfiguration(XEvent *event);
       
   153 
       
   154 _XFUNCPROTOEND
       
   155 
       
   156 #endif /* _XRANDR_H_ */