library: libGX11 #include "TGX11.h"

# TGX11

class description - source file - inheritance tree (.pdf)

## class TGX11 : public TVirtualX

| Inheritance Chart:
`TObject`
| <- | `TNamed`
`TAttLine`
`TAttFill`
`TAttText`
`TAttMarker`
| <- | `TVirtualX`
| <- | `TGX11` |
<- |
`TGX11TTF` |

        private:

           void ClearPixmap(unsigned long* pix)
           void CloseWindow1()
           void CollectImageColors(ULong_t pixel, ULong_t*& orgcolors, Int_t& ncolors, Int_t& maxcolors)
           void CopyWindowtoPixmap(unsigned long* pix, Int_t xpos, Int_t ypos)
           void FindBestVisual()
          Int_t FindColor(ULong_t pixel, ULong_t* orgcolors, Int_t ncolors)
           void FindUsableVisual(XVisualInfo* vlist, Int_t nitems)
           void ImgPickPalette(XImage* image, Int_t& ncol, Int_t*& R, Int_t*& G, Int_t*& B)
           void MakeOpaqueColors(Int_t percent, ULong_t* orgcolors, Int_t ncolors)
           void MapColorStruct(ColorStruct_t* color, XColor& xcolor)
           void MapCursor(ECursor cursor, Int_t& xcursor)
           void MapEvent(Event_t& ev, XEvent& xev, Bool_t tox = kTRUE)
           void MapEventMask(UInt_t& emask, UInt_t& xemask, Bool_t tox = kTRUE)
           void MapGCValues(GCValues_t& gval, ULong_t& xmask, XGCValues& xgval, Bool_t tox = kTRUE)
           void MapKeySym(UInt_t& keysym, UInt_t& xkeysym, Bool_t tox = kTRUE)
           void MapModifierState(UInt_t& state, UInt_t& xstate, Bool_t tox = kTRUE)
           void MapPictureAttributes(PictureAttributes_t& attr, XpmAttributes& xpmattr, Bool_t toxpm = kTRUE)
           void MapSetWindowAttributes(SetWindowAttributes_t* attr, ULong_t& xmask, XSetWindowAttributes& xattr)
           void PutImage(Int_t offset, Int_t itran, Int_t x0, Int_t y0, Int_t nx, Int_t ny, Int_t xmin, Int_t ymin, Int_t xmax, Int_t ymax, UChar_t* image, Drawable_t id)
           void RemovePixmap(unsigned long* pix)
           void SetColor(GC gc, Int_t ci)
           void SetFillStyleIndex(Int_t style, Int_t fasi)
           void SetInput(Int_t inp)
           void SetMarkerType(Int_t type, Int_t n, XPoint* xy)

        protected:

             Bool_t AllocColor(unsigned long cmap, XColor* color)
          XColor_t& GetColor(Int_t cid)
                GC* GetGC(Int_t which) const
               void QueryColors(unsigned long cmap, XColor* colors, Int_t ncolors)

        public:

                                 TGX11()
                                 TGX11(const TGX11& org)
                                 TGX11(const char* name, const char* title)
                         virtual ~TGX11()
                   virtual Int_t AddWindow(ULong_t qwid, UInt_t w, UInt_t h)
                  virtual Bool_t AllocColor(Colormap_t cmap, ColorStruct_t& color)
                    virtual void Bell(Int_t percent)
                    virtual void ChangeGC(GContext_t gc, GCValues_t* gval)
                    virtual void ChangeProperty(Window_t id, Atom_t property, Atom_t type, UChar_t* data, Int_t len)
                    virtual void ChangeWindowAttributes(Window_t id, SetWindowAttributes_t* attr)
                  virtual Bool_t CheckEvent(Window_t id, EGEventType type, Event_t& ev)
                  static TClass* Class()
                    virtual void ClearArea(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    virtual void ClearWindow()
                    virtual void ClearWindow(Window_t id)
                    virtual void CloseDisplay()
                    virtual void ClosePixmap()
                    virtual void CloseWindow()
                    virtual void ConvertPrimarySelection(Window_t id, Atom_t clipboard, Time_t when)
                    virtual void CopyArea(Drawable_t src, Drawable_t dest, GContext_t gc, Int_t src_x, Int_t src_y, UInt_t width, UInt_t height, Int_t dest_x, Int_t dest_y)
                    virtual void CopyGC(GContext_t org, GContext_t dest, Mask_t mask)
                    virtual void CopyPixmap(Int_t wid, Int_t xpos, Int_t ypos)
                virtual Pixmap_t CreateBitmap(Drawable_t id, const char* bitmap, UInt_t width, UInt_t height)
                virtual Cursor_t CreateCursor(ECursor cursor)
              virtual GContext_t CreateGC(Drawable_t id, GCValues_t* gval)
              virtual Drawable_t CreateImage(UInt_t width, UInt_t height)
                  virtual Bool_t CreatePictureFromData(Drawable_t id, char** data, Pixmap_t& pict, Pixmap_t& pict_mask, PictureAttributes_t& attr)
                  virtual Bool_t CreatePictureFromFile(Drawable_t id, const char* filename, Pixmap_t& pict, Pixmap_t& pict_mask, PictureAttributes_t& attr)
                virtual Pixmap_t CreatePixmap(Drawable_t id, UInt_t w, UInt_t h)
                virtual Pixmap_t CreatePixmap(Drawable_t id, const char* bitmap, UInt_t width, UInt_t height, ULong_t forecolor, ULong_t backcolor, Int_t depth)
                virtual Pixmap_t CreatePixmapFromData(unsigned char* bits, UInt_t width, UInt_t height)
                virtual Region_t CreateRegion()
                virtual Window_t CreateWindow(Window_t parent, Int_t x, Int_t y, UInt_t w, UInt_t h, UInt_t border, Int_t depth, UInt_t clss, void* visual, SetWindowAttributes_t* attr, UInt_t wtype)
                    virtual void DeleteFont(FontStruct_t fs)
                    virtual void DeleteGC(GContext_t gc)
                    virtual void DeleteImage(Drawable_t img)
                    virtual void DeletePictureData(void* data)
                    virtual void DeletePixmap(Pixmap_t pmap)
                    virtual void DestroyRegion(Region_t reg)
                    virtual void DestroySubwindows(Window_t id)
                    virtual void DestroyWindow(Window_t id)
             virtual const char* DisplayName(const char* dpyName = "0") const
                    virtual void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, TVirtualX::EBoxMode mode)
                    virtual void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, Int_t* ic)
                    virtual void DrawFillArea(Int_t n, TPoint* xy)
                    virtual void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2)
                    virtual void DrawLine(Drawable_t id, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2)
                    virtual void DrawPolyLine(Int_t n, TPoint* xy)
                    virtual void DrawPolyMarker(Int_t n, TPoint* xy)
                    virtual void DrawRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    virtual void DrawSegments(Drawable_t id, GContext_t gc, Segment_t* seg, Int_t nseg)
                    virtual void DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y, const char* s, Int_t len)
                    virtual void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn, const char* text, TVirtualX::ETextMode mode)
                  virtual Bool_t EmptyRegion(Region_t reg)
                  virtual Bool_t EqualRegion(Region_t rega, Region_t regb)
                   virtual Int_t EventsPending()
                    virtual void FillPolygon(Window_t id, GContext_t gc, Point_t* points, Int_t npnt)
                    virtual void FillRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    virtual void FreeColor(Colormap_t cmap, ULong_t pixel)
                    virtual void FreeFontNames(char** fontlist)
                    virtual void FreeFontStruct(FontStruct_t fs)
                    virtual void GetCharacterUp(Float_t& chupx, Float_t& chupy)
          virtual unsigned char* GetColorBits(Drawable_t wid, Int_t x = 0, Int_t y = 0, UInt_t w = 0, UInt_t h = 0)
              virtual Colormap_t GetColormap() const
                virtual Window_t GetCurrentWindow() const
                virtual Window_t GetDefaultRootWindow() const
                   virtual Int_t GetDepth() const
               virtual Display_t GetDisplay() const
                   virtual Int_t GetDoubleBuffer(Int_t wid)
                 virtual FontH_t GetFontHandle(FontStruct_t fs)
                    virtual void GetFontProperties(FontStruct_t font, Int_t& max_ascent, Int_t& max_descent)
            virtual FontStruct_t GetFontStruct(FontH_t fh)
                    virtual void GetGCValues(GContext_t gc, GCValues_t& gval)
                    virtual void GetGeometry(Int_t wid, Int_t& x, Int_t& y, UInt_t& w, UInt_t& h)
                    virtual void GetImageSize(Drawable_t id, UInt_t& width, UInt_t& height)
                virtual Window_t GetInputFocus()
                virtual Handle_t GetNativeEvent() const
                virtual Window_t GetParent(Window_t id) const
                    virtual void GetPasteBuffer(Window_t id, Atom_t atom, TString& text, Int_t& nchar, Bool_t del)
                 virtual ULong_t GetPixel(Color_t cindex)
                    virtual void GetPlanes(Int_t& nplanes)
                virtual Window_t GetPrimarySelectionOwner()
                    virtual void GetRegionBox(Region_t reg, Rectangle_t*)
                    virtual void GetRGB(Int_t index, Float_t& r, Float_t& g, Float_t& b)
                   virtual Int_t GetScreen() const
                    virtual void GetTextExtent(UInt_t& w, UInt_t& h, char* mess)
                 virtual Float_t GetTextMagnitude()
                virtual Visual_t GetVisual() const
                    virtual void GetWindowAttributes(Window_t id, WindowAttributes_t& attr)
                virtual Window_t GetWindowID(Int_t wid)
                    virtual void GetWindowSize(Drawable_t id, Int_t& x, Int_t& y, UInt_t& w, UInt_t& h)
                    virtual void GrabButton(Window_t id, EMouseButton button, UInt_t modifier, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab = kTRUE)
                    virtual void GrabKey(Window_t id, Int_t keycode, UInt_t modifier, Bool_t grab = kTRUE)
                    virtual void GrabPointer(Window_t id, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab = kTRUE, Bool_t owner_events = kTRUE)
                  virtual Bool_t HasTTFonts() const
                    virtual void IconifyWindow(Window_t id)
                  virtual Bool_t Init(void* display)
                   virtual Int_t InitWindow(ULong_t window)
                  virtual Atom_t InternAtom(const char* atom_name, Bool_t only_if_exist)
                    virtual void IntersectRegion(Region_t rega, Region_t regb, Region_t result)
                 virtual TClass* IsA() const
                   virtual Int_t KeysymToKeycode(UInt_t keysym)
                  virtual char** ListFonts(const char* fontname, Int_t max, Int_t& count)
            virtual FontStruct_t LoadQueryFont(const char* font_name)
                    virtual void LookupString(Event_t* event, char* buf, Int_t buflen, UInt_t& keysym)
                    virtual void LowerWindow(Window_t id)
                    virtual void MapRaised(Window_t id)
                    virtual void MapSubwindows(Window_t id)
                    virtual void MapWindow(Window_t id)
                    virtual void MoveResizeWindow(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    virtual void MoveWindow(Int_t wid, Int_t x, Int_t y)
                    virtual void MoveWindow(Window_t id, Int_t x, Int_t y)
                    virtual void NextEvent(Event_t& event)
                           Int_t OpenDisplay(Display* display)
                   virtual Int_t OpenDisplay(const char* dpyName)
                   virtual Int_t OpenPixmap(UInt_t w, UInt_t h)
                          TGX11& operator=(const TGX11&)
                  virtual Bool_t ParseColor(Colormap_t cmap, const char* cname, ColorStruct_t& color)
                  virtual Bool_t PointInRegion(Int_t x, Int_t y, Region_t reg)
                virtual Region_t PolygonRegion(Point_t* points, Int_t np, Bool_t winding)
                    virtual void PutImage(Drawable_t id, GContext_t gc, Drawable_t img, Int_t dx, Int_t dy, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    virtual void PutPixel(Drawable_t id, Int_t x, Int_t y, ULong_t pixel)
                    virtual void QueryColor(Colormap_t cmap, ColorStruct_t& color)
                    virtual void QueryPointer(Int_t& ix, Int_t& iy)
                    virtual void QueryPointer(Window_t id, Window_t& rootw, Window_t& childw, Int_t& root_x, Int_t& root_y, Int_t& win_x, Int_t& win_y, UInt_t& mask)
                    virtual void RaiseWindow(Window_t id)
                virtual Pixmap_t ReadGIF(Int_t x0, Int_t y0, const char* file, Window_t id = 0)
                  virtual Bool_t ReadPictureDataFromFile(const char* filename, char*** ret_data)
                    virtual void RemoveWindow(ULong_t qwid)
                    virtual void ReparentWindow(Window_t id, Window_t pid, Int_t x, Int_t y)
                   virtual Int_t RequestLocator(Int_t mode, Int_t ctyp, Int_t& x, Int_t& y)
                   virtual Int_t RequestString(Int_t x, Int_t y, char* text)
                    virtual void RescaleWindow(Int_t wid, UInt_t w, UInt_t h)
                   virtual Int_t ResizePixmap(Int_t wid, UInt_t w, UInt_t h)
                    virtual void ResizeWindow(Int_t wid)
                    virtual void ResizeWindow(Window_t id, UInt_t w, UInt_t h)
                    virtual void SelectInput(Window_t id, UInt_t evmask)
                    virtual void SelectWindow(Int_t wid)
                    virtual void SendEvent(Window_t id, Event_t* ev)
                    virtual void SetCharacterUp(Float_t chupx, Float_t chupy)
                    virtual void SetClassHints(Window_t id, char* className, char* resourceName)
                    virtual void SetClipOFF(Int_t wid)
                    virtual void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t* recs, Int_t n)
                    virtual void SetClipRegion(Int_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    virtual void SetCursor(Int_t win, ECursor cursor)
                    virtual void SetCursor(Window_t id, Cursor_t curid)
                    virtual void SetDashes(GContext_t gc, Int_t offset, const char* dash_list, Int_t n)
                    virtual void SetDoubleBuffer(Int_t wid, Int_t mode)
                    virtual void SetDoubleBufferOFF()
                    virtual void SetDoubleBufferON()
                    virtual void SetDrawMode(TVirtualX::EDrawMode mode)
                    virtual void SetFillColor(Color_t cindex)
                    virtual void SetFillStyle(Style_t style)
                    virtual void SetForeground(GContext_t gc, ULong_t foreground)
                    virtual void SetIconName(Window_t id, char* name)
                    virtual void SetIconPixmap(Window_t id, Pixmap_t pic)
                    virtual void SetInputFocus(Window_t id)
                    virtual void SetKeyAutoRepeat(Bool_t on = kTRUE)
                    virtual void SetLineColor(Color_t cindex)
                    virtual void SetLineStyle(Style_t linestyle)
                    virtual void SetLineType(Int_t n, Int_t* dash)
                    virtual void SetLineWidth(Width_t width)
                    virtual void SetMarkerColor(Color_t cindex)
                    virtual void SetMarkerSize(Float_t markersize)
                    virtual void SetMarkerStyle(Style_t markerstyle)
                    virtual void SetMWMHints(Window_t id, UInt_t value, UInt_t funcs, UInt_t input)
                    virtual void SetOpacity(Int_t percent)
                    virtual void SetPrimarySelectionOwner(Window_t id)
                    virtual void SetRGB(Int_t cindex, Float_t r, Float_t g, Float_t b)
                    virtual void SetTextAlign(Short_t talign = 11)
                    virtual void SetTextColor(Color_t cindex)
                   virtual Int_t SetTextFont(char* fontname, TVirtualX::ETextSetMode mode)
                    virtual void SetTextFont(Font_t fontnumber)
                    virtual void SetTextMagnitude(Float_t mgn = 1)
                    virtual void SetTextSize(Float_t textsize)
                    virtual void SetWindowBackground(Window_t id, ULong_t color)
                    virtual void SetWindowBackgroundPixmap(Window_t id, Pixmap_t pxm)
                    virtual void SetWindowName(Window_t id, char* name)
                    virtual void SetWMPosition(Window_t id, Int_t x, Int_t y)
                    virtual void SetWMSize(Window_t id, UInt_t w, UInt_t h)
                    virtual void SetWMSizeHints(Window_t id, UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
                    virtual void SetWMState(Window_t id, EInitialState state)
                    virtual void SetWMTransientHint(Window_t id, Window_t main_id)
                    virtual void ShowMembers(TMemberInspector& insp, char* parent)
                    virtual void Streamer(TBuffer& b)
                            void StreamerNVirtual(TBuffer& b)
                    virtual void SubtractRegion(Region_t rega, Region_t regb, Region_t result)
                            void Sync(Int_t mode)
                   virtual Int_t TextWidth(FontStruct_t font, const char* s, Int_t len)
                    virtual void TranslateCoordinates(Window_t src, Window_t dest, Int_t src_x, Int_t src_y, Int_t& dest_x, Int_t& dest_y, Window_t& child)
                    virtual void UnionRectWithRegion(Rectangle_t* rect, Region_t src, Region_t dest)
                    virtual void UnionRegion(Region_t rega, Region_t regb, Region_t result)
                    virtual void UnmapWindow(Window_t id)
                    virtual void Update(Int_t mode = 0)
                    virtual void UpdateWindow(Int_t mode)
                    virtual void Warp(Int_t ix, Int_t iy, Window_t id = 0)
                    virtual void WMDeleteNotify(Window_t id)
                   virtual Int_t WriteGIF(char* name)
                    virtual void WritePixmap(Int_t wid, UInt_t w, UInt_t h, char* pxname)
                    virtual void XorRegion(Region_t rega, Region_t regb, Region_t result)

### Data Members

        private:

                  Int_t fMaxNumberOfWindows  Maximum number of windows
             XWindow_t* fWindows             List of windows
                TExMap* fColors              Hash list of colors
          unsigned long fCursors[18]         List of cursors
                XEvent* fXEvent              Current native (X11) event

        protected:

               Display* fDisplay        Pointer to display
                Visual* fVisual         Pointer to visual used by all windows
          unsigned long fRootWin        Root window used as parent of all windows
          unsigned long fVisRootWin     Root window with fVisual to be used to create GC's and XImages
          unsigned long fColormap       Default colormap, 0 if b/w
                ULong_t fBlackPixel     Value of black pixel in colormap
                ULong_t fWhitePixel     Value of white pixel in colormap
                  Int_t fScreenNumber   Screen number
                  Int_t fTextAlignH     Text Alignment Horizontal
                  Int_t fTextAlignV     Text Alignment Vertical
                  Int_t fTextAlign      Text alignment (set in SetTextAlign)
                Float_t fCharacterUpX   Character Up vector along X
                Float_t fCharacterUpY   Character Up vector along Y
                Float_t fTextMagnitude  Text Magnitude
                  Int_t fDepth          Number of color planes
                  Int_t fRedDiv         Red value divider, -1 if no TrueColor visual
                  Int_t fGreenDiv       Green value divider
                  Int_t fBlueDiv        Blue value divider
                  Int_t fRedShift       Bits to left shift red, -1 if no TrueColor visual
                  Int_t fGreenShift     Bits to left shift green
                  Int_t fBlueShift      Bits to left shift blue
                 Bool_t fHasTTFonts     True when TrueType fonts are used

## Class Description

     TGX11

     This class is the basic interface to the X11 graphics system. It is
     an implementation of the abstract TVirtualX class. The companion
     class for Win32 is TGWin32.

     This code was initially developed in the context of HIGZ and PAW
     by Olivier Couet (package X11INT).

TGX11()

     Default constructor.

TGX11(const char *name, const char *title) : TVirtualX(name, title)

     Normal Constructor.

TGX11(const TGX11 &org) : TVirtualX(org)

     Copy constructor. Currently only used by TGX11TTF.

~TGX11()

     Destructor.

Bool_t Init(void *display)

     Initialize X11 system. Returns kFALSE in case of failure.

Bool_t AllocColor(Colormap cmap, XColor *color)

     Allocate color in colormap. If we are on an <= 8 plane machine
     we will use XAllocColor. If we are on a >= 15 (15, 16 or 24) plane
     true color machine we will calculate the pixel value using:
     for 15 and 16 bit true colors have 6 bits precision per color however
     only the 5 most significant bits are used in the color index.
     Except for 16 bits where green uses all 6 bits. I.e.:
       15 bits = rrrrrgggggbbbbb
       16 bits = rrrrrggggggbbbbb
     for 24 bits each r, g and b are represented by 8 bits.

     Since all colors are set with a max of 65535 (16 bits) per r, g, b
     we just right shift them by 10, 11 and 10 bits for 16 planes, and
     (10, 10, 10 for 15 planes) and by 8 bits for 24 planes.
     Returns kFALSE in case color allocation failed.

void QueryColors(Colormap cmap, XColor *color, Int_t ncolors)

     Returns the current RGB value for the pixel in the XColor structure.

void ClearPixmap(Drawable *pix)

     Clear the pixmap pix.

void ClearWindow()

     Clear current window.

void ClosePixmap()

     Delete current pixmap.

void CloseWindow()

     Delete current window.

void CloseWindow1()

     Delete current window.

void CopyPixmap(int wid, int xpos, int ypos)

     Copy the pixmap wid at the position xpos, ypos in the current window.

void CopyWindowtoPixmap(Drawable *pix, int xpos, int ypos )

     Copy area of current window in the pixmap pix.

void DrawBox(int x1, int y1, int x2, int y2, EBoxMode mode)

     Draw a box.
     mode=0 hollow  (kHollow)
     mode=1 solid   (kSolid)

void DrawCellArray(int x1, int y1, int x2, int y2, int nx, int ny, int *ic)

     Draw a cell array.
     x1,y1        : left down corner
     x2,y2        : right up corner
     nx,ny        : array size
     ic           : array

     Draw a cell array. The drawing is done with the pixel presicion
     if (X2-X1)/NX (or Y) is not a exact pixel number the position of
     the top rigth corner may be wrong.

void DrawFillArea(int n, TPoint *xyt)

     Fill area described by polygon.
     n         : number of points
     xy(2,n)   : list of points

void DrawLine(int x1, int y1, int x2, int y2)

     Draw a line.
     x1,y1        : begin of line
     x2,y2        : end of line

void DrawPolyLine(int n, TPoint *xyt)

     Draw a line through all points.
     n         : number of points
     xy        : list of points

void DrawPolyMarker(int n, TPoint *xyt)

     Draw n markers with the current attributes at position x, y.
     n    : number of markers to draw
     xy   : x,y coordinates of markers

void DrawText(int x, int y, float angle, float mgn, const char *text, ETextMode mode)

     Draw a text string using current font.
     mode       : drawing mode
     mode=0     : the background is not drawn (kClear)
     mode=1     : the background is drawn (kOpaque)
     x,y        : text position
     angle      : text angle
     mgn        : magnification factor
     text       : text string

void FindBestVisual()

     Find best visual, i.e. the one with the most planes and TrueColor or
     DirectColor. Sets fVisual, fDepth, fRootWin, fColormap, fBlackPixel
     and fWhitePixel.

void FindUsableVisual(XVisualInfo *vlist, Int_t nitems)

     Check if visual is usable, if so set fVisual, fDepth, fColormap,
     fBlackPixel and fWhitePixel.

void GetCharacterUp(Float_t &chupx, Float_t &chupy)

     Return character up vector.

XColor_t& GetColor(Int_t cid)

     Return reference to internal color structure associated
     to color index cid.

Window_t GetCurrentWindow() const

     Return current window pointer. Protected method used by TGX11TTF.

GC* GetGC(Int_t which) const

     Return desired Graphics Context ("which" maps directly on gGCList[]).
     Protected method used by TGX11TTF.

Int_t GetDoubleBuffer(int wid)

     Query the double buffer value for the window wid.

void GetGeometry(int wid, int &x, int &y, unsigned int &w, unsigned int &h)

     Return position and size of window wid.
     wid        : window identifier
     x,y        : window position (output)
     w,h        : window size (output)
     if wid < 0 the size of the display is returned

const char* DisplayName(const char *dpyName)

     Return hostname on which the display is opened.

ULong_t GetPixel(Color_t ci)

     Return pixel value associated to specified ROOT color number.

void GetPlanes(int &nplanes)

     Get maximum number of planes.

void GetRGB(int index, float &r, float &g, float &b)

     Get rgb values for color "index".

void GetTextExtent(unsigned int &w, unsigned int &h, char *mess)

     Return the size of a character string.
     iw          : text width
     ih          : text height
     mess        : message

Window_t GetWindowID(int wid)

     Return the X11 window identifier.
     wid      : Workstation identifier (input)

void MoveWindow(int wid, int x, int y)

     Move the window wid.
     wid  : Window identifier.
     x    : x new window position
     y    : y new window position

Int_t OpenDisplay(Display *disp)

     Open the display. Return -1 if the opening fails, 0 when ok.

Int_t OpenPixmap(unsigned int w, unsigned int h)

     Open a new pixmap.
     w,h : Width and height of the pixmap.

Int_t InitWindow(ULong_t win)

     Open window and return window number.
     Return -1 if window initialization fails.

Int_t AddWindow(ULong_t qwid, UInt_t w, UInt_t h)

     Register a window created by Qt as a ROOT window (like InitWindow()).

void RemoveWindow(ULong_t qwid)

     Remove a window created by Qt (like CloseWindow1()).

void QueryPointer(int &ix, int &iy)

     Query pointer position.
     ix       : X coordinate of pointer
     iy       : Y coordinate of pointer
     (both coordinates are relative to the origin of the root window)

void RemovePixmap(Drawable *pix)

     Remove the pixmap pix.

Int_t RequestLocator(int mode, int ctyp, int &x, int &y)

     Request Locator position.
     x,y       : cursor position at moment of button press (output)
     ctyp      : cursor type (input)
       ctyp=1 tracking cross
       ctyp=2 cross-hair
       ctyp=3 rubber circle
       ctyp=4 rubber band
       ctyp=5 rubber rectangle

     mode      : input mode
       mode=0 request
       mode=1 sample

     Request locator:
     return button number  1 = left is pressed
                           2 = middle is pressed
                           3 = right is pressed
            in sample mode:
                          11 = left is released
                          12 = middle is released
                          13 = right is released
                          -1 = nothing is pressed or released
                          -2 = leave the window
                        else = keycode (keyboard is pressed)

Int_t RequestString(int x, int y, char *text)

     Request a string.
     x,y         : position where text is displayed
     text        : text displayed (input), edited text (output)

     Request string:
     text is displayed and can be edited with Emacs-like keybinding
     return termination code (0 for ESC, 1 for RETURN)

void RescaleWindow(int wid, unsigned int w, unsigned int h)

     Rescale the window wid.
     wid  : Window identifier
     w    : Width
     h    : Heigth

int ResizePixmap(int wid, unsigned int w, unsigned int h)

     Resize a pixmap.
     wid : pixmap to be resized
     w,h : Width and height of the pixmap

void ResizeWindow(int wid)

     Resize the current window if necessary.

void SelectWindow(int wid)

     Select window to which subsequent output is directed.

void SetCharacterUp(Float_t chupx, Float_t chupy)

     Set character up vector.

void SetClipOFF(int wid)

     Turn off the clipping for the window wid.

void SetClipRegion(int wid, int x, int y, unsigned int w, unsigned int h)

     Set clipping region for the window wid.
     wid        : Window indentifier
     x,y        : origin of clipping rectangle
     w,h        : size of clipping rectangle;

void SetColor(GC gc, int ci)

     Set the foreground color in GC.

void SetCursor(int wid, ECursor cursor)

     Set the cursor.

void SetDoubleBuffer(int wid, int mode)

     Set the double buffer on/off on window wid.
     wid  : Window identifier.
            999 means all the opened windows.
     mode : 1 double buffer is on
            0 double buffer is off

void SetDoubleBufferOFF()

     Turn double buffer mode off.

void SetDoubleBufferON()

     Turn double buffer mode on.

void SetDrawMode(EDrawMode mode)

     Set the drawing mode.
     mode : drawing mode
       mode=1 copy
       mode=2 xor
       mode=3 invert
       mode=4 set the suitable mode for cursor echo according to
              the vendor

void SetFillColor(Color_t cindex)

     Set color index for fill areas.

void SetFillStyle(Style_t fstyle)

     Set fill area style.
     fstyle   : compound fill area interior style
        fstyle = 1000*interiorstyle + styleindex

void SetFillStyleIndex(Int_t style, Int_t fasi)

     Set fill area style index.

void SetInput(int inp)

     Set input on or off.

void SetLineColor(Color_t cindex)

     Set color index for lines.

void SetLineType(int n, int *dash)

     Set line type.
     n         : length of dash list
     dash(n)   : dash segment lengths

     if n <= 0 use solid lines
     if n >  0 use dashed lines described by DASH(N)
        e.g. N=4,DASH=(6,3,1,3) gives a dashed-dotted line with dash length 6
        and a gap of 7 between dashes

void SetLineStyle(Style_t lstyle)

     Set line style.

void SetLineWidth(Width_t width )

     Set line width.
     width   : line width in pixels

void SetMarkerColor(Color_t cindex)

     Set color index for markers.

void SetMarkerSize(Float_t msize)

     Set marker size index.
     msize  : marker scale factor

void SetMarkerType(int type, int n, XPoint *xy)

     Set marker type.
     type      : marker type
     n         : length of marker description
     xy        : list of points describing marker shape

     if n == 0 marker is a single point
     if TYPE == 0 marker is hollow circle of diameter N
     if TYPE == 1 marker is filled circle of diameter N
     if TYPE == 2 marker is a hollow polygon describe by line XY
     if TYPE == 3 marker is a filled polygon describe by line XY
     if TYPE == 4 marker is described by segmented line XY
       e.g. TYPE=4,N=4,XY=(-3,0,3,0,0,-3,0,3) sets a plus shape of 7x7 pixels

void SetMarkerStyle(Style_t markerstyle)

     Set marker style.

void SetOpacity(Int_t percent)

     Set opacity of a window. This image manipulation routine works
     by adding to a percent amount of neutral to each pixels RGB.
     Since it requires quite some additional color map entries is it
     only supported on displays with more than > 8 color planes (> 256
     colors).

void CollectImageColors(ULong_t pixel, ULong_t *&orgcolors, Int_t &ncolors, Int_t &maxcolors)

     Collect in orgcolors all different original image colors.

void MakeOpaqueColors(Int_t percent, ULong_t *orgcolors, Int_t ncolors)

     Get RGB values for orgcolors, add percent neutral to the RGB and
     allocate new_colors.

Int_t FindColor(ULong_t pixel, ULong_t *orgcolors, Int_t ncolors)

     Returns index in orgcolors (and new_colors) for pixel.

void SetRGB(int cindex, float r, float g, float b)

     Set color intensities for given color index.
     cindex     : color index
     r,g,b      : red, green, blue intensities between 0.0 and 1.0

void SetTextAlign(Short_t talign)

     Set text alignment.
     txalh   : horizontal text alignment
     txalv   : vertical text alignment

void SetTextColor(Color_t cindex)

     Set color index for text.

Int_t SetTextFont(char *fontname, ETextSetMode mode)

     Set text font to specified name.
     mode       : loading flag
     mode=0     : search if the font exist (kCheck)
     mode=1     : search the font and load it if it exists (kLoad)
     font       : font name

     Set text font to specified name. This function returns 0 if
     the specified font is found, 1 if not.

void SetTextFont(Font_t fontnumber)

     Set current text font number.

void SetTextSize(Float_t textsize)

     Set current text size.

void Sync(int mode)

     Set synchronisation on or off.
     mode : synchronisation on/off
        mode=1  on
        mode<>0 off

void UpdateWindow(int mode)

     Update display.
     mode : (1) update
            (0) sync

     Synchronise client and server once (not permanent).
     Copy the pixmap gCws->drawing on the window gCws->window
     if the double buffer is on.

void Warp(Int_t ix, Int_t iy, Window_t id)

     Set pointer position.
     ix       : New X coordinate of pointer
     iy       : New Y coordinate of pointer
     Coordinates are relative to the origin of the window id
     or to the origin of the current window if id == 0.

void WritePixmap(int wid, unsigned int w, unsigned int h, char *pxname)

     Write the pixmap wid in the bitmap file pxname.
     wid         : Pixmap address
     w,h         : Width and height of the pixmap.
     lenname     : pixmap name length
     pxname      : pixmap name

void ImgPickPalette(XImage *image, Int_t &ncol, Int_t *&R, Int_t *&G, Int_t *&B)

     Returns in R G B the ncol colors of the palette used by the image.
     The image pixels are changed to index values in these R G B arrays.
     This produces a colormap with only the used colors (so even on displays
     with more than 8 planes we will be able to create GIF's when the image
     contains no more than 256 different colors). If it does contain more
     colors we will have to use GIFquantize to reduce the number of colors.
     The R G B arrays must be deleted by the caller.

Int_t WriteGIF(char *name)

     Writes the current window into GIF file. Returns 1 in case of success,
     0 otherwise.

void PutImage(int offset,int itran,int x0,int y0,int nx,int ny,int xmin, int ymin,int xmax,int ymax, unsigned char *image,Drawable_t wid)

     Draw image.

Pixmap_t ReadGIF(int x0, int y0, const char *file, Window_t id)

     If id is NULL - loads the specified gif file at position [x0,y0] in the
     current window. Otherwise creates pixmap from gif file

Pixmap_t CreatePixmapFromData(unsigned char * /*bits*/, UInt_t /*width*/, UInt_t /*height*/)

     create pixmap from RGB data. RGB data is in format :
     b1, g1, r1, 0,  b2, g2, r2, 0 ... bn, gn, rn, 0 ..

     Pixels are numbered from left to right and from top to bottom.
     Note that data must be 32-bit aligned

### Inline Functions

                      void MapGCValues(GCValues_t& gval, ULong_t& xmask, XGCValues& xgval, Bool_t tox = kTRUE)
                      void MapSetWindowAttributes(SetWindowAttributes_t* attr, ULong_t& xmask, XSetWindowAttributes& xattr)
                      void MapCursor(ECursor cursor, Int_t& xcursor)
                      void MapColorStruct(ColorStruct_t* color, XColor& xcolor)
                      void MapPictureAttributes(PictureAttributes_t& attr, XpmAttributes& xpmattr, Bool_t toxpm = kTRUE)
                      void MapModifierState(UInt_t& state, UInt_t& xstate, Bool_t tox = kTRUE)
                      void MapEvent(Event_t& ev, XEvent& xev, Bool_t tox = kTRUE)
                      void MapEventMask(UInt_t& emask, UInt_t& xemask, Bool_t tox = kTRUE)
                      void MapKeySym(UInt_t& keysym, UInt_t& xkeysym, Bool_t tox = kTRUE)
                  Handle_t GetNativeEvent() const
                   Float_t GetTextMagnitude()
                    Bool_t HasTTFonts() const
                      void SetTextMagnitude(Float_t mgn = 1)
                      void GetWindowAttributes(Window_t id, WindowAttributes_t& attr)
                      void MapWindow(Window_t id)
                      void MapSubwindows(Window_t id)
                      void MapRaised(Window_t id)
                      void UnmapWindow(Window_t id)
                      void DestroyWindow(Window_t id)
                      void DestroySubwindows(Window_t id)
                      void RaiseWindow(Window_t id)
                      void LowerWindow(Window_t id)
                      void MoveWindow(Window_t id, Int_t x, Int_t y)
                      void MoveResizeWindow(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
                      void ResizeWindow(Window_t id, UInt_t w, UInt_t h)
                      void IconifyWindow(Window_t id)
                      void ReparentWindow(Window_t id, Window_t pid, Int_t x, Int_t y)
                      void SetWindowBackground(Window_t id, ULong_t color)
                      void SetWindowBackgroundPixmap(Window_t id, Pixmap_t pxm)
                  Window_t CreateWindow(Window_t parent, Int_t x, Int_t y, UInt_t w, UInt_t h, UInt_t border, Int_t depth, UInt_t clss, void* visual, SetWindowAttributes_t* attr, UInt_t wtype)
                     Int_t OpenDisplay(const char* dpyName)
                      void CloseDisplay()
                 Display_t GetDisplay() const
                  Visual_t GetVisual() const
                     Int_t GetScreen() const
                     Int_t GetDepth() const
                Colormap_t GetColormap() const
                    Atom_t InternAtom(const char* atom_name, Bool_t only_if_exist)
                  Window_t GetDefaultRootWindow() const
                  Window_t GetParent(Window_t id) const
              FontStruct_t LoadQueryFont(const char* font_name)
                   FontH_t GetFontHandle(FontStruct_t fs)
                      void DeleteFont(FontStruct_t fs)
                GContext_t CreateGC(Drawable_t id, GCValues_t* gval)
                      void ChangeGC(GContext_t gc, GCValues_t* gval)
                      void CopyGC(GContext_t org, GContext_t dest, Mask_t mask)
                      void DeleteGC(GContext_t gc)
                  Cursor_t CreateCursor(ECursor cursor)
                      void SetCursor(Window_t id, Cursor_t curid)
                  Pixmap_t CreatePixmap(Drawable_t id, UInt_t w, UInt_t h)
                  Pixmap_t CreatePixmap(Drawable_t id, const char* bitmap, UInt_t width, UInt_t height, ULong_t forecolor, ULong_t backcolor, Int_t depth)
            unsigned char* GetColorBits(Drawable_t wid, Int_t x = 0, Int_t y = 0, UInt_t w = 0, UInt_t h = 0)
                  Pixmap_t CreateBitmap(Drawable_t id, const char* bitmap, UInt_t width, UInt_t height)
                      void DeletePixmap(Pixmap_t pmap)
                    Bool_t CreatePictureFromFile(Drawable_t id, const char* filename, Pixmap_t& pict, Pixmap_t& pict_mask, PictureAttributes_t& attr)
                    Bool_t CreatePictureFromData(Drawable_t id, char** data, Pixmap_t& pict, Pixmap_t& pict_mask, PictureAttributes_t& attr)
                    Bool_t ReadPictureDataFromFile(const char* filename, char*** ret_data)
                      void DeletePictureData(void* data)
                      void SetDashes(GContext_t gc, Int_t offset, const char* dash_list, Int_t n)
                    Bool_t ParseColor(Colormap_t cmap, const char* cname, ColorStruct_t& color)
                    Bool_t AllocColor(Colormap_t cmap, ColorStruct_t& color)
                      void QueryColor(Colormap_t cmap, ColorStruct_t& color)
                      void FreeColor(Colormap_t cmap, ULong_t pixel)
                     Int_t EventsPending()
                      void NextEvent(Event_t& event)
                      void Bell(Int_t percent)
                      void CopyArea(Drawable_t src, Drawable_t dest, GContext_t gc, Int_t src_x, Int_t src_y, UInt_t width, UInt_t height, Int_t dest_x, Int_t dest_y)
                      void ChangeWindowAttributes(Window_t id, SetWindowAttributes_t* attr)
                      void ChangeProperty(Window_t id, Atom_t property, Atom_t type, UChar_t* data, Int_t len)
                      void DrawLine(Drawable_t id, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2)
                      void ClearArea(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
                    Bool_t CheckEvent(Window_t id, EGEventType type, Event_t& ev)
                      void SendEvent(Window_t id, Event_t* ev)
                      void WMDeleteNotify(Window_t id)
                      void SetKeyAutoRepeat(Bool_t on = kTRUE)
                      void GrabKey(Window_t id, Int_t keycode, UInt_t modifier, Bool_t grab = kTRUE)
                      void GrabButton(Window_t id, EMouseButton button, UInt_t modifier, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab = kTRUE)
                      void GrabPointer(Window_t id, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab = kTRUE, Bool_t owner_events = kTRUE)
                      void SetWindowName(Window_t id, char* name)
                      void SetIconName(Window_t id, char* name)
                      void SetIconPixmap(Window_t id, Pixmap_t pic)
                      void SetClassHints(Window_t id, char* className, char* resourceName)
                      void SetMWMHints(Window_t id, UInt_t value, UInt_t funcs, UInt_t input)
                      void SetWMPosition(Window_t id, Int_t x, Int_t y)
                      void SetWMSize(Window_t id, UInt_t w, UInt_t h)
                      void SetWMSizeHints(Window_t id, UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
                      void SetWMState(Window_t id, EInitialState state)
                      void SetWMTransientHint(Window_t id, Window_t main_id)
                      void DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y, const char* s, Int_t len)
                     Int_t TextWidth(FontStruct_t font, const char* s, Int_t len)
                      void GetFontProperties(FontStruct_t font, Int_t& max_ascent, Int_t& max_descent)
                      void GetGCValues(GContext_t gc, GCValues_t& gval)
              FontStruct_t GetFontStruct(FontH_t fh)
                      void FreeFontStruct(FontStruct_t fs)
                      void ClearWindow(Window_t id)
                     Int_t KeysymToKeycode(UInt_t keysym)
                      void FillRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
                      void DrawRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
                      void DrawSegments(Drawable_t id, GContext_t gc, Segment_t* seg, Int_t nseg)
                      void SelectInput(Window_t id, UInt_t evmask)
                  Window_t GetInputFocus()
                      void SetInputFocus(Window_t id)
                  Window_t GetPrimarySelectionOwner()
                      void SetPrimarySelectionOwner(Window_t id)
                      void ConvertPrimarySelection(Window_t id, Atom_t clipboard, Time_t when)
                      void LookupString(Event_t* event, char* buf, Int_t buflen, UInt_t& keysym)
                      void GetPasteBuffer(Window_t id, Atom_t atom, TString& text, Int_t& nchar, Bool_t del)
                      void TranslateCoordinates(Window_t src, Window_t dest, Int_t src_x, Int_t src_y, Int_t& dest_x, Int_t& dest_y, Window_t& child)
                      void GetWindowSize(Drawable_t id, Int_t& x, Int_t& y, UInt_t& w, UInt_t& h)
                      void FillPolygon(Window_t id, GContext_t gc, Point_t* points, Int_t npnt)
                      void QueryPointer(Window_t id, Window_t& rootw, Window_t& childw, Int_t& root_x, Int_t& root_y, Int_t& win_x, Int_t& win_y, UInt_t& mask)
                      void SetForeground(GContext_t gc, ULong_t foreground)
                      void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t* recs, Int_t n)
                      void Update(Int_t mode = 0)
                  Region_t CreateRegion()
                      void DestroyRegion(Region_t reg)
                      void UnionRectWithRegion(Rectangle_t* rect, Region_t src, Region_t dest)
                  Region_t PolygonRegion(Point_t* points, Int_t np, Bool_t winding)
                      void UnionRegion(Region_t rega, Region_t regb, Region_t result)
                      void IntersectRegion(Region_t rega, Region_t regb, Region_t result)
                      void SubtractRegion(Region_t rega, Region_t regb, Region_t result)
                      void XorRegion(Region_t rega, Region_t regb, Region_t result)
                    Bool_t EmptyRegion(Region_t reg)
                    Bool_t PointInRegion(Int_t x, Int_t y, Region_t reg)
                    Bool_t EqualRegion(Region_t rega, Region_t regb)
                      void GetRegionBox(Region_t reg, Rectangle_t*)
                    char** ListFonts(const char* fontname, Int_t max, Int_t& count)
                      void FreeFontNames(char** fontlist)
                Drawable_t CreateImage(UInt_t width, UInt_t height)
                      void GetImageSize(Drawable_t id, UInt_t& width, UInt_t& height)
                      void PutPixel(Drawable_t id, Int_t x, Int_t y, ULong_t pixel)
                      void PutImage(Drawable_t id, GContext_t gc, Drawable_t img, Int_t dx, Int_t dy, Int_t x, Int_t y, UInt_t w, UInt_t h)
                      void DeleteImage(Drawable_t img)
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
                    TGX11& operator=(const TGX11&)

Author: Rene Brun, Olivier Couet, Fons Rademakers 28/11/94
Last update: root/x11:$Name: $:$Id: TGX11.cxx,v 1.49 2005/06/21 18:15:13 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *