"""
This module implements python classes which inherit from
and extend the functionality of the ROOT canvas classes.
"""
import ROOT
from ..core import Object
from ..registry import register
from .. import rootpy_globals as _globals
from .. import defaults
[docs]class PadMixin(object):
def _post_init(self):
self.members = []
_globals.pad = self
[docs] def Clear(self, *args, **kwargs):
self.members = []
self.__class__.__bases__[-1].Clear(self, *args, **kwargs)
[docs] def OwnMembers(self):
for thing in self.GetListOfPrimitives():
if thing not in self.members:
self.members.append(thing)
[docs] def cd(self, *args):
_globals.pad = self
return self.__class__.__bases__[-1].cd(self, *args)
@register()
[docs]class Pad(Object, PadMixin, ROOT.TPad):
def __init__(self, *args, **kwargs):
ROOT.TPad.__init__(self, *args, **kwargs)
self._post_init()
@register()
[docs]class Canvas(Object, PadMixin, ROOT.TCanvas):
def __init__(self,
width=defaults.CANVAS_WIDTH,
height=defaults.CANVAS_HEIGHT,
xpos=0, ypos=0, name=None, title=None):
Object.__init__(self, name, title, xpos, ypos, width, height)
self._post_init()