19using namespace std::string_literals;
25 std::shared_ptr<ROOT::Experimental::RCanvas>
fCanvas;
41 std::string
GetKind()
const override {
return "rcanvas"s; }
43 void Show(
const std::string &arg)
override
50 return fCanvas->GetWindowUrl(
false);
58 bool DrawElement(std::shared_ptr<RElement> &elem,
const std::string &opt =
"")
override
63 auto obj = elem->GetObject();
69 std::shared_ptr<ROOT::Experimental::RPadBase> subpad =
fCanvas;
71 std::string drawopt = opt;
73 if (drawopt.compare(0,8,
"<append>") == 0) {
75 }
else if (subpad->NumPrimitives() > 0) {
81 if (drawopt ==
"<dflt>")
105 std::shared_ptr<ROOT::RBrowserWidget>
Create(
const std::string &
name)
final
107 return std::make_shared<RBrowserRCanvasWidget>(
name);
110 std::shared_ptr<ROOT::RBrowserWidget>
CreateFor(
const std::string &
name, std::shared_ptr<RElement> &elem)
final
112 auto holder = elem->GetObject();
113 if (!holder)
return nullptr;
116 if (!canv)
return nullptr;
118 return std::make_shared<RBrowserRCanvasWidget>(
name, canv);
~RBrowserRCanvasProvider() override=default
std::shared_ptr< ROOT::RBrowserWidget > CreateFor(const std::string &name, std::shared_ptr< RElement > &elem) final
RBrowserRCanvasProvider()
std::shared_ptr< ROOT::RBrowserWidget > Create(const std::string &name) final
@ kActDraw7
can be drawn inside ROOT7 canvas
static bool Draw7(std::shared_ptr< ROOT::Experimental::RPadBase > &subpad, std::unique_ptr< RHolder > &obj, const std::string &opt="")
Invoke drawing of object on RCanvas sub-pad All existing providers are checked, first checked are cla...
static std::string GetClassDrawOption(const ClassArg &)
Return configured draw option for the class.
static void ExtendProgressHandle(void *handle, void *handle2)
Extend progress handle - to be able react on sub item.
static std::shared_ptr< RCanvas > Create(const std::string &title)
Create new canvas instance.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...