Skip to content
Snippets Groups Projects
Commit fc8af752 authored by Sergey Linev's avatar Sergey Linev Committed by Axel Naumann
Browse files

webgui: provide dictionary for drawable and pad

Still some problem to store canvas with any sub-pads inside
parent 6fbf0d62
No related branches found
No related tags found
No related merge requests found
......@@ -268,4 +268,8 @@
#pragma link C++ class TParameter<Long_t>+;
#pragma link C++ class TParameter<Long64_t>+;
#ifdef ROOT7_TDrawable
#pragma link C++ class ROOT::Experimental::TDrawable+;
#endif
#endif
......@@ -48,8 +48,12 @@
#pragma link C++ class ROOT::Experimental::TMenuItems+;
#pragma link C++ class ROOT::Experimental::Detail::TPadUserCoordBase+;
#pragma link C++ class ROOT::Experimental::Detail::TPadLinearUserCoord+;
#pragma link C++ struct ROOT::Experimental::Internal::TPadHorizVert+;
#pragma link C++ class ROOT::Experimental::TPadExtent+;
#pragma link C++ class ROOT::Experimental::TPadPos+;
#pragma link C++ class ROOT::Experimental::Internal::TPadBase+;
#pragma link C++ class ROOT::Experimental::TPad+;
#pragma link C++ class ROOT::Experimental::TPadDrawable+;
#pragma link C++ class ROOT::Experimental::TCanvas+;
#pragma link C++ class ROOT::Experimental::TPadCoord::Pixel+;
#pragma link C++ class ROOT::Experimental::TPadCoord::CoordSysBase<ROOT::Experimental::TPadCoord::Pixel>+;
......
......@@ -147,6 +147,29 @@ public:
};
} // namespace Internal
/** \class TPadDrawable
Draw a TPad, by drawing its contained graphical elements at the pad offset in the parent pad.'
*/
class TPadDrawable: public TDrawable {
private:
const std::unique_ptr<TPad> fPad; ///< The pad to be painted
TPadPos fPos; ///< Offset with respect to parent TPad.
public:
TPadDrawable() = default;
TPadDrawable(std::unique_ptr<TPad> &&pPad, const TPadPos &pos): fPad(std::move(pPad)), fPos(pos) {}
/// Paint the pad.
void Paint(Internal::TVirtualCanvasPainter & /*canv*/) final
{
// FIXME: and then what? Something with fPad.GetListOfPrimitives()?
}
TPad *Get() const { return fPad.get(); }
};
/** \class ROOT::Experimental::TPad
Graphic container for `TDrawable`-s.
*/
......@@ -159,32 +182,15 @@ private:
/// Size of the pad in the parent's (!) coordinate system.
TPadExtent fSize;
/** \class TPadDrawable
Draw a TPad, by drawing its contained graphical elements at the pad offset in the parent pad.'
*/
class TPadDrawable: public TDrawable {
private:
const std::unique_ptr<TPad> fPad; ///< The pad to be painted
TPadPos fPos; ///< Offset with respect to parent TPad.
public:
TPadDrawable(std::unique_ptr<TPad> &&pPad, const TPadPos &pos): fPad(std::move(pPad)), fPos(pos) {}
/// Paint the pad.
void Paint(Internal::TVirtualCanvasPainter & /*canv*/) final
{
// FIXME: and then what? Something with fPad.GetListOfPrimitives()?
}
TPad *Get() const { return fPad.get(); }
};
public:
friend std::unique_ptr<TPadDrawable> GetDrawable(std::unique_ptr<TPad> &&pad, const TPadPos &pos)
{
return std::make_unique<TPadDrawable>(std::move(pad), pos);
}
public:
/// Create a child pad.
TPad(const TPadBase &parent, const TPadExtent &size): fParent(&parent), fSize(size) {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment