Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:12:35

0001 // Author:  Sergey Linev, GSI  23/10/2018
0002 
0003 /*************************************************************************
0004  * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers.               *
0005  * All rights reserved.                                                  *
0006  *                                                                       *
0007  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0008  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0009  *************************************************************************/
0010 
0011 #ifndef ROOT_TWebPS
0012 #define ROOT_TWebPS
0013 
0014 #include "TVirtualPS.h"
0015 
0016 #include "TWebPainting.h"
0017 
0018 #include <memory>
0019 #include <string>
0020 
0021 class TWebPS : public TVirtualPS {
0022 
0023    std::unique_ptr<TWebPainting> fPainting;    ///!< object to store all painting
0024 
0025    enum EAttrKinds { attrLine = 0x1, attrFill = 0x2, attrMarker = 0x4, attrText = 0x8 };
0026 
0027    Float_t *StoreOperation(const std::string &oper, unsigned attrkind, int opersize = 0);
0028 
0029 public:
0030    TWebPS();
0031 
0032    Bool_t IsEmptyPainting() const { return fPainting ? fPainting->IsEmpty() : kTRUE; }
0033    TWebPainting *GetPainting() { return fPainting.get(); }
0034    TWebPainting *TakePainting()
0035    {
0036       fPainting->FixSize();
0037       return fPainting.release();
0038    }
0039    void CreatePainting();
0040 
0041    /// not yet implemented
0042 
0043    void CellArrayBegin(Int_t, Int_t, Double_t, Double_t, Double_t, Double_t) override  {}
0044    void CellArrayFill(Int_t, Int_t, Int_t)  override {}
0045    void CellArrayEnd()  override  {}
0046    void Close(Option_t * = "")  override  {}
0047    void DrawFrame(Double_t, Double_t, Double_t, Double_t, Int_t, Int_t, Int_t, Int_t) override {}
0048    void NewPage() override {}
0049    void Open(const char *, Int_t = -111) override {}
0050    void SetColor(Float_t, Float_t, Float_t) override {}
0051 
0052    // overwritten methods
0053    void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override;
0054    void DrawPolyMarker(Int_t n, Float_t *x, Float_t *y) override;
0055    void DrawPolyMarker(Int_t n, Double_t *x, Double_t *y) override;
0056    void DrawPS(Int_t n, Float_t *xw, Float_t *yw) override;
0057    void DrawPS(Int_t n, Double_t *xw, Double_t *yw) override;
0058    void Text(Double_t x, Double_t y, const char *str) override;
0059    void Text(Double_t x, Double_t y, const wchar_t *str) override;
0060 
0061 private:
0062    //Let's make this clear:
0063    TWebPS(const TWebPS &rhs) = delete;
0064    TWebPS(TWebPS && rhs) = delete;
0065    TWebPS & operator = (const TWebPS &rhs) = delete;
0066    TWebPS & operator = (TWebPS && rhs) = delete;
0067 
0068    ClassDefOverride(TWebPS, 0) // Redirection of VirtualPS to Web painter
0069 };
0070 
0071 #endif