TVirtualX.interface.h

Go to the documentation of this file.
00001 // @(#)root/base:$Id: TVirtualX.interface.h 33707 2010-06-02 06:27:34Z brun $
00002 // Author: Valeri Fine   28/07/2004
00003 
00004 //
00005 //  This is a copy of the all "abstract" TVirtualX methods to make sure 
00006 //  we don't miss it with the implementation
00007 //
00008 /*************************************************************************
00009  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00010  * All rights reserved.                                                  *
00011  *                                                                       *
00012  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00013  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00014  *************************************************************************/
00015 
00016 
00017 public:
00018 
00019    virtual Bool_t    Init(void *display=0);
00020    virtual void      ClearWindow();
00021    virtual void      ClosePixmap();
00022    virtual void      CloseWindow();
00023    virtual void      CopyPixmap(Int_t wid, Int_t xpos, Int_t ypos);
00024    virtual void      CreateOpenGLContext(Int_t wid=0);
00025    virtual void      DeleteOpenGLContext(Int_t wid=0);
00026    virtual void      DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode);
00027    virtual void      DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2,
00028                                    Int_t nx, Int_t ny, Int_t *ic);
00029    virtual void      DrawFillArea(Int_t n, TPoint *xy);
00030    virtual void      DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2);
00031    virtual void      DrawPolyLine(Int_t n, TPoint *xy);
00032    virtual void      DrawPolyMarker(Int_t n, TPoint *xy);
00033    virtual void      DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text,
00034                               ETextMode mode);
00035    virtual UInt_t    ExecCommand(TGWin32Command *code);
00036    virtual void      GetCharacterUp(Float_t &chupx, Float_t &chupy);
00037    virtual Int_t     GetDoubleBuffer(Int_t wid);
00038    virtual void      GetGeometry(Int_t wid, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h);
00039    virtual const char *DisplayName(const char * = 0);
00040    virtual Handle_t  GetNativeEvent() const;
00041    virtual ULong_t   GetPixel(Color_t cindex);
00042    virtual void      GetPlanes(Int_t &nplanes);
00043    virtual void      GetRGB(Int_t index, Float_t &r, Float_t &g, Float_t &b);
00044    virtual void      GetTextExtent(UInt_t &w, UInt_t &h, char *mess);
00045    virtual Int_t     GetFontAscent()  const;
00046    virtual Int_t     GetFontDescent() const;
00047    virtual Float_t   GetTextMagnitude();
00048    virtual Window_t  GetWindowID(Int_t wid);
00049    virtual Bool_t    HasTTFonts() const;
00050    virtual Int_t     InitWindow(ULong_t window);
00051    virtual Int_t     AddWindow(ULong_t qwid, UInt_t w, UInt_t h);
00052    virtual void      RemoveWindow(ULong_t qwid);
00053    virtual void      MoveWindow(Int_t wid, Int_t x, Int_t y);
00054    virtual Int_t     OpenPixmap(UInt_t w, UInt_t h);
00055    virtual void      QueryPointer(Int_t &ix, Int_t &iy);
00056    virtual Pixmap_t  ReadGIF(Int_t x0, Int_t y0, const char *file, Window_t id=0);
00057    virtual Int_t     RequestLocator(Int_t mode, Int_t ctyp, Int_t &x, Int_t &y);
00058    virtual Int_t     RequestString(Int_t x, Int_t y, char *text);
00059    virtual void      RescaleWindow(Int_t wid, UInt_t w, UInt_t h);
00060    virtual Int_t     ResizePixmap(Int_t wid, UInt_t w, UInt_t h);
00061    virtual void      ResizeWindow(Int_t wid);
00062    virtual void      SelectWindow(Int_t wid);
00063    virtual void      SelectPixmap(Int_t qpixid);
00064    virtual void      SetCharacterUp(Float_t chupx, Float_t chupy);
00065    virtual void      SetClipOFF(Int_t wid);
00066    virtual void      SetClipRegion(Int_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h);
00067    virtual void      SetCursor(Int_t win, ECursor cursor);
00068    virtual void      SetDoubleBuffer(Int_t wid, Int_t mode);
00069    virtual void      SetDoubleBufferOFF();
00070    virtual void      SetDoubleBufferON();
00071    virtual void      SetDrawMode(EDrawMode mode);
00072    virtual void      SetFillColor(Color_t cindex);
00073    virtual void      SetFillStyle(Style_t style);
00074    virtual void      SetLineColor(Color_t cindex);
00075    virtual void      SetLineType(Int_t n, Int_t *dash);
00076    virtual void      SetLineStyle(Style_t linestyle);
00077    virtual void      SetLineWidth(Width_t width);
00078    virtual void      SetMarkerColor(Color_t cindex);
00079    virtual void      SetMarkerSize(Float_t markersize);
00080    virtual void      SetMarkerStyle(Style_t markerstyle);
00081    virtual void      SetOpacity(Int_t percent);
00082    virtual void      SetRGB(Int_t cindex, Float_t r, Float_t g, Float_t b);
00083    virtual void      SetTextAlign(Short_t talign=11);
00084    virtual void      SetTextColor(Color_t cindex);
00085    virtual Int_t     SetTextFont(char *fontname, ETextSetMode mode);
00086    virtual void      SetTextFont(Font_t fontnumber);
00087    virtual void      SetTextMagnitude(Float_t mgn);
00088    virtual void      SetTextSize(Float_t textsize);
00089    virtual void      UpdateWindow(Int_t mode);
00090    virtual void      Warp(Int_t ix, Int_t iy){ Warp(ix,iy,0); }
00091    virtual void      Warp(Int_t ix, Int_t iy, Window_t id);
00092    virtual Int_t     WriteGIF(char *name);
00093    virtual void      WritePixmap(Int_t wid, UInt_t w, UInt_t h, char *pxname);
00094 
00095    //---- Methods used for GUI -----
00096    virtual void         GetWindowAttributes(Window_t id, WindowAttributes_t &attr);
00097    virtual void         MapWindow(Window_t id);
00098    virtual void         MapSubwindows(Window_t id);
00099    virtual void         MapRaised(Window_t id);
00100    virtual void         UnmapWindow(Window_t id);
00101    virtual void         DestroyWindow(Window_t id);
00102    virtual void         RaiseWindow(Window_t id);
00103    virtual void         LowerWindow(Window_t id);
00104    virtual void         MoveWindow(Window_t id, Int_t x, Int_t y);
00105    virtual void         MoveResizeWindow(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h);
00106    virtual void         ResizeWindow(Window_t id, UInt_t w, UInt_t h);
00107    virtual void         IconifyWindow(Window_t id);
00108    virtual Bool_t       NeedRedraw(ULong_t tgwindow, Bool_t force);
00109    virtual void         ReparentWindow(Window_t id, Window_t pid, Int_t x, Int_t y);
00110    virtual void         SetWindowBackground(Window_t id, ULong_t color);
00111    virtual void         SetWindowBackgroundPixmap(Window_t id, Pixmap_t pxm);
00112    virtual Window_t     CreateWindow(Window_t parent, Int_t x, Int_t y,
00113                                      UInt_t w, UInt_t h, UInt_t border,
00114                                      Int_t depth, UInt_t clss,
00115                                      void *visual, SetWindowAttributes_t *attr,
00116                                      UInt_t wtype);
00117    virtual Int_t        OpenDisplay(const char *dpyName);
00118    virtual void         CloseDisplay();
00119    virtual Display_t    GetDisplay() const;
00120    virtual Visual_t     GetVisual() const;
00121    virtual Int_t        GetScreen() const;
00122    virtual Int_t        GetDepth() const;
00123    virtual Colormap_t   GetColormap() const;
00124    virtual Atom_t       InternAtom(const char *atom_name, Bool_t only_if_exist);
00125    virtual Window_t     GetDefaultRootWindow() const;
00126    virtual Window_t     GetParent(Window_t id) const;
00127    virtual FontStruct_t LoadQueryFont(const char *font_name);
00128    virtual FontH_t      GetFontHandle(FontStruct_t fs);
00129    virtual void         DeleteFont(FontStruct_t fs);
00130    virtual GContext_t   CreateGC(Drawable_t id, GCValues_t *gval);
00131    virtual void         ChangeGC(GContext_t gc, GCValues_t *gval);
00132    virtual void         CopyGC(GContext_t org, GContext_t dest, Mask_t mask);
00133    virtual void         DeleteGC(GContext_t gc);
00134    virtual Cursor_t     CreateCursor(ECursor cursor);
00135    virtual void         SetCursor(Window_t id, Cursor_t curid);
00136    virtual Pixmap_t     CreatePixmap(Drawable_t id, UInt_t w, UInt_t h);
00137    virtual Pixmap_t     CreatePixmap(Drawable_t id, const char *bitmap, UInt_t width,
00138                                      UInt_t height, ULong_t forecolor, ULong_t backcolor,
00139                                      Int_t depth);
00140    virtual Pixmap_t     CreateBitmap(Drawable_t id, const char *bitmap,
00141                                      UInt_t width, UInt_t height);
00142    virtual void         DeletePixmap(Pixmap_t pmap);
00143    virtual Bool_t       CreatePictureFromFile(Drawable_t id, const char *filename,
00144                                               Pixmap_t &pict, Pixmap_t &pict_mask,
00145                                               PictureAttributes_t &attr);
00146    virtual Bool_t       CreatePictureFromData(Drawable_t id, char **data,
00147                                               Pixmap_t &pict, Pixmap_t &pict_mask,
00148                                               PictureAttributes_t &attr);
00149    virtual Bool_t       ReadPictureDataFromFile(const char *filename, char ***ret_data);
00150    virtual void         DeletePictureData(void *data);
00151    virtual void         SetDashes(GContext_t gc, Int_t offset, const char *dash_list,
00152                                   Int_t n);
00153    virtual Bool_t       ParseColor(Colormap_t cmap, const char *cname, ColorStruct_t &color);
00154    virtual Bool_t       AllocColor(Colormap_t cmap, ColorStruct_t &color);
00155    virtual void         QueryColor(Colormap_t cmap, ColorStruct_t &color);
00156    virtual void         FreeColor(Colormap_t cmap, ULong_t pixel);
00157    virtual Int_t        EventsPending();
00158    virtual void         NextEvent(Event_t &event);
00159    virtual void         Bell(Int_t percent);
00160    virtual void         CopyArea(Drawable_t src, Drawable_t dest, GContext_t gc,
00161                                  Int_t src_x, Int_t src_y, UInt_t width,
00162                                  UInt_t height, Int_t dest_x, Int_t dest_y);
00163    virtual void         ChangeWindowAttributes(Window_t id, SetWindowAttributes_t *attr);
00164    virtual void         ChangeProperty(Window_t id, Atom_t property, Atom_t type,
00165                                        UChar_t *data, Int_t len);
00166    virtual void         DrawLine(Drawable_t id, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2);
00167    virtual void         ClearArea(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h);
00168    virtual Bool_t       CheckEvent(Window_t id, EGEventType type, Event_t &ev);
00169    virtual void         SendEvent(Window_t id, Event_t *ev);
00170    virtual void         WMDeleteNotify(Window_t id);
00171    virtual void         SetKeyAutoRepeat(Bool_t on = kTRUE);
00172    virtual void         GrabKey(Window_t id, Int_t keycode, UInt_t modifier, Bool_t grab = kTRUE);
00173    virtual void         GrabButton(Window_t id, EMouseButton button, UInt_t modifier,
00174                                    UInt_t evmask, Window_t confine, Cursor_t cursor,
00175                                    Bool_t grab = kTRUE);
00176    virtual void         GrabPointer(Window_t id, UInt_t evmask, Window_t confine,
00177                                     Cursor_t cursor, Bool_t grab = kTRUE,
00178                                     Bool_t owner_events = kTRUE);
00179    virtual void         SetWindowName(Window_t id, char *name);
00180    virtual void         SetIconName(Window_t id, char *name);
00181    virtual void         SetIconPixmap(Window_t id, Pixmap_t pix);
00182    virtual void         SetClassHints(Window_t id, char *className, char *resourceName);
00183    virtual void         SetMWMHints(Window_t id, UInt_t value, UInt_t funcs, UInt_t input);
00184    virtual void         SetWMPosition(Window_t id, Int_t x, Int_t y);
00185    virtual void         SetWMSize(Window_t id, UInt_t w, UInt_t h);
00186    virtual void         SetWMSizeHints(Window_t id, UInt_t wmin, UInt_t hmin,
00187                                        UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc);
00188    virtual void         SetWMState(Window_t id, EInitialState state);
00189    virtual void         SetWMTransientHint(Window_t id, Window_t main_id);
00190    virtual void         DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y,
00191                                    const char *s, Int_t len);
00192    virtual Int_t        TextWidth(FontStruct_t font, const char *s, Int_t len);
00193    virtual void         GetFontProperties(FontStruct_t font, Int_t &max_ascent, Int_t &max_descent);
00194    virtual void         GetGCValues(GContext_t gc, GCValues_t &gval);
00195    virtual FontStruct_t GetFontStruct(FontH_t fh);
00196    virtual void         FreeFontStruct(FontStruct_t fs);
00197    virtual void         ClearWindow(Window_t id);
00198    virtual Int_t        KeysymToKeycode(UInt_t keysym);
00199    virtual void         FillRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y,
00200                                       UInt_t w, UInt_t h);
00201    virtual void         DrawRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y,
00202                                       UInt_t w, UInt_t h);
00203    virtual void         DrawSegments(Drawable_t id, GContext_t gc, Segment_t *seg, Int_t nseg);
00204    virtual void         SelectInput(Window_t id, UInt_t evmask);
00205    virtual Window_t     GetInputFocus();
00206    virtual void         SetInputFocus(Window_t id);
00207    virtual Window_t     GetPrimarySelectionOwner();
00208    virtual void         SetPrimarySelectionOwner(Window_t id);
00209    virtual void         ConvertPrimarySelection(Window_t id, Atom_t clipboard, Time_t when);
00210    virtual void         LookupString(Event_t *event, char *buf, Int_t buflen, UInt_t &keysym);
00211    virtual void         GetPasteBuffer(Window_t id, Atom_t atom, TString &text, Int_t &nchar,
00212                                        Bool_t del);
00213    virtual void         TranslateCoordinates(Window_t src, Window_t dest, Int_t src_x,Int_t src_y,
00214                                              Int_t &dest_x, Int_t &dest_y, Window_t &child);
00215    virtual void         GetWindowSize(Drawable_t id, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h);
00216    virtual void         FillPolygon(Window_t id, GContext_t gc, Point_t *points, Int_t npnt);
00217    virtual void         QueryPointer(Window_t id, Window_t &rootw, Window_t &childw,
00218                                      Int_t &root_x, Int_t &root_y, Int_t &win_x,
00219                                      Int_t &win_y, UInt_t &mask);
00220    virtual void         SetBackground(GContext_t gc, ULong_t background);
00221    virtual void         SetForeground(GContext_t gc, ULong_t foreground);
00222    virtual void         SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t *recs, Int_t n);
00223    virtual void         Update(Int_t mode = 0);
00224    virtual Region_t     CreateRegion();
00225    virtual void         DestroyRegion(Region_t reg);
00226    virtual void         UnionRectWithRegion(Rectangle_t *rect, Region_t src, Region_t dest);
00227    virtual Region_t     PolygonRegion(Point_t *points, Int_t np, Bool_t winding);
00228    virtual void         UnionRegion(Region_t rega, Region_t regb, Region_t result);
00229    virtual void         IntersectRegion(Region_t rega, Region_t regb, Region_t result);
00230    virtual void         SubtractRegion(Region_t rega, Region_t regb, Region_t result);
00231    virtual void         XorRegion(Region_t rega, Region_t regb, Region_t result);
00232    virtual Bool_t       EmptyRegion(Region_t reg);
00233    virtual Bool_t       PointInRegion(Int_t x, Int_t y, Region_t reg);
00234    virtual Bool_t       EqualRegion(Region_t rega, Region_t regb);
00235    virtual void         GetRegionBox(Region_t reg, Rectangle_t *rect);
00236 // !!!!!!!!   virtual char       **ListFonts(char *fontname, Int_t max, Int_t &count);
00237    virtual char       **ListFonts(const char *fontname, Int_t max, Int_t &count);
00238    virtual void         FreeFontNames(char **fontlist);
00239    virtual Drawable_t   CreateImage(UInt_t width, UInt_t height);
00240    virtual void         GetImageSize(Drawable_t id, UInt_t &width, UInt_t &height);
00241    virtual void         PutPixel(Drawable_t id, Int_t x, Int_t y, ULong_t pixel);
00242    virtual void         PutImage(Drawable_t id, GContext_t gc, Drawable_t img,
00243                                  Int_t dx, Int_t dy, Int_t x, Int_t y,
00244                                  UInt_t w, UInt_t h);
00245    virtual void         DeleteImage(Drawable_t img);
00246 //  The method to support ASImage (by V.Onuchine
00247    unsigned char *GetColorBits(Drawable_t wid, Int_t x = 0, Int_t y = 0, UInt_t w = 0, UInt_t h = 0);
00248    virtual  Pixmap_t    CreatePixmapFromData(unsigned char *bits, UInt_t width, UInt_t height);
00249    virtual  Window_t    GetCurrentWindow() const;
00250 
00251    virtual Int_t  SupportsExtension(const char *ext) const;
00252 
00253    //---- Drag and Drop -----
00254    virtual void         DeleteProperty(Window_t, Atom_t&);
00255    virtual Int_t        GetProperty(Window_t, Atom_t, Long_t, Long_t, Bool_t, Atom_t,
00256                                     Atom_t*, Int_t*, ULong_t*, ULong_t*, unsigned char**);
00257    virtual void         ChangeActivePointerGrab(Window_t, UInt_t, Cursor_t);
00258    virtual void         ConvertSelection(Window_t, Atom_t&, Atom_t&, Atom_t&, Time_t&);
00259    virtual Bool_t       SetSelectionOwner(Window_t, Atom_t&);
00260    virtual void         ChangeProperties(Window_t id, Atom_t property, Atom_t type,
00261                                          Int_t format, UChar_t *data, Int_t len);
00262    virtual void         SetDNDAware(Window_t, Atom_t *);
00263    virtual void         SetTypeList(Window_t win, Atom_t prop, Atom_t *typelist);
00264    virtual Window_t     FindRWindow(Window_t win, Window_t dragwin, Window_t input, int x, int y, int maxd);
00265    virtual Bool_t       IsDNDAware(Window_t win, Atom_t *typelist);
00266 
00267 #if 0 
00268 //   Alas CINT does not understand the complex CPP statement below.
00269 //   This forces us to edit the file "by hand" (V.Fine 01/03/2005)
00270 //   #if  ROOT_VERSION_CODE < ROOT_VERSION(4,01,02)
00271    
00272    //---- Methods used for OpenGL -----
00273    virtual Window_t     CreateGLWindow(Window_t wind, Visual_t visual = 0, Int_t depth = 0);
00274    virtual ULong_t      GetWinDC(Window_t wind);
00275    virtual ULong_t      wglCreateContext(Window_t wind);
00276    virtual void         wglDeleteContext(ULong_t ctx);
00277    virtual void         wglMakeCurrent(Window_t wind, ULong_t ctx);
00278    virtual void         wglSwapLayerBuffers(Window_t wind, UInt_t mode);
00279    virtual void         glViewport(Int_t x0, Int_t y0, Int_t x1, Int_t y1);
00280    virtual void         glClearIndex(Float_t fParam);
00281    virtual void         glClearColor(Float_t red, Float_t green, Float_t blue, Float_t alpha);
00282    virtual void         glDrawBuffer(UInt_t mode);
00283    virtual void         glClear(UInt_t mode);
00284    virtual void         glDisable(UInt_t mode);
00285    virtual void         glEnable(UInt_t mode);
00286    virtual void         glFlush();
00287    virtual void         glFrontFace(UInt_t mode);
00288    virtual void         glNewList(UInt_t list, UInt_t mode);
00289    virtual void         glGetBooleanv(UInt_t mode, UChar_t *bRet);
00290    virtual void         glGetDoublev(UInt_t mode, Double_t *dRet);
00291    virtual void         glGetFloatv(UInt_t mode, Float_t *fRet);
00292    virtual void         glGetIntegerv(UInt_t mode, Int_t *iRet);
00293    virtual Int_t        glGetError();
00294    virtual void         glEndList();
00295    virtual void         glBegin(UInt_t mode);
00296    virtual void         glEnd();
00297    virtual void         glPushMatrix();
00298    virtual void         glPopMatrix();
00299    virtual void         glRotated(Double_t angle, Double_t x, Double_t y, Double_t z);
00300    virtual void         glTranslated(Double_t x, Double_t y, Double_t z);
00301    virtual void         glMultMatrixd(const Double_t *matrix);
00302    virtual void         glColor3fv(const Float_t *color);
00303    virtual void         glVertex3f(Float_t x, Float_t y, Float_t z);
00304    virtual void         glVertex3fv(const Float_t *vert);
00305    virtual void         glIndexi(Int_t index);
00306    virtual void         glPointSize(Float_t size);
00307    virtual void         glLineWidth(Float_t width);
00308    virtual void         glDeleteLists(UInt_t list, Int_t sizei);
00309    virtual UInt_t       glGenLists(UInt_t list);
00310    virtual void         glCallList(UInt_t list);
00311    virtual void         glMatrixMode(UInt_t mode);
00312    virtual void         glLoadIdentity();
00313    virtual void         glFrustum(Double_t min_0, Double_t max_0, Double_t min_1,
00314                                   Double_t max_1, Double_t dnear, Double_t dfar);
00315    virtual void         glOrtho(Double_t min_0, Double_t max_0, Double_t min_1,
00316                                 Double_t max_1, Double_t dnear, Double_t dfar);
00317    virtual void         glCullFace(UInt_t mode);
00318    virtual void         glPolygonMode(UInt_t face, UInt_t mode);
00319    virtual void         glLoadMatrixd(const Double_t *matrix);
00320    virtual void         glShadeModel(UInt_t mode);
00321    virtual void         glNormal3fv(const Float_t *norm);
00322 #endif

Generated on Tue Jul 5 14:14:33 2011 for ROOT_528-00b_version by  doxygen 1.5.1