Renderer API — widgets, attributes and inputs
A renderer connects an upstream source or converter to a visual object. render="Label" selects Components.Renderer.Label.Label; its GUI_WIDGET = eLabel supplies the native attributes. A renderer can additionally consume its own XML options before passing the remaining attributes to skin.py.
This catalogue covers the 41 matching module classes in Components/Renderer, including the Renderer base and the non-visual FrontpanelLed. Presence in that directory does not make a class an OSD widget: front-panel control has a different lifecycle, and some implementations depend on optional packages or receiver capabilities.
The common contract
Abschnitt betitelt „The common contract“| Interface | Purpose |
|---|---|
connect(source) |
Attaches the upstream Element; normal skin construction does this. |
GUI_WIDGET / createWidget(parent) |
Selects or creates the native widget. |
postWidgetCreate(instance) |
Initialises the instance, callbacks or content after creation. |
applySkin(desktop, parent) |
Consumes component options and applies remaining visual attributes. |
changed(what) |
Responds to source updates; handle clear events as well as normal changes. |
onShow() / onHide() |
Resume/suspend updates through the Element lifecycle. |
preWidgetRemove(instance) |
Disconnects widget callbacks before removal. |
These are Python methods, not XML attribute names. The catalogue includes their exact signatures and inherited methods. Do not create a second native widget from changed(); updates should modify the existing instance.
Common data contracts
Abschnitt betitelt „Common data contracts“| Renderer | Upstream data | Extra configuration |
|---|---|---|
Label |
text |
Native eLabel attributes |
FixedLabel |
Can participate in visibility changes | XML text remains fixed |
Progress |
value and range |
Native eSlider attributes |
Pixmap |
pixmap, or numeric text for an image list |
pixmaps="off.png,on.png" uses zero-based indexes |
Listbox |
Native content; selection callbacks |
Often supplied by XmlMultiContent / TemplatedMultiContent |
Canvas |
drawlist instructions |
Drawing commands carry their own text/font/colour data |
PositionGauge |
Playback length, position and cut-list data | pointer, seekPointer and native gauge attributes |
RunningText |
text |
A viewport plus child label; custom options and text styling |
The API recipes show complete chains and explain why an exposed property does not necessarily work in every converter mode.
Renderer catalogue
Abschnitt betitelt „Renderer catalogue“Expand Arguments, defaults and skin parsing for the exact constructor and applySkin code, including base implementations. The extra-attribute list is extracted from explicit comparisons, match branches and local-handler dispatch. Nested sub-options, for example the comma-separated contents of options, are shown in the parsing code; they are not separate widget attributes.
41 entries
Source snapshot f4135659cb. Current attribute counts exclude legacy names and structural XML names. Deprecated attributes and compatibility migrations have their own reference.
AnalogClockLCD
lib/python/Components/Renderer/AnalogClockLCD.py, line 10 ↗
Class: Components.Renderer.AnalogClockLCD.AnalogClockLCD. Bases: Renderer.
Native root: eCanvas (18 current central attribute names).
Names explicitly handled in this class's applySkin: 9. bColor, fColor, hColor, linesize, linewidth, mColor, positionheight, positionwidth, sColor These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eCanvas — Components.Renderer.AnalogClockLCD.AnalogClockLCD
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
AnalogClockLCD.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.fColor = gRGB(255, 255, 255, 0)
self.bColor = gRGB(0, 0, 0, 255)
self.forend = -1
self.linewidth = 1
self.positionheight = 1
self.positionwidth = 1
self.linesize = 10
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
AnalogClockLCD.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # HINT: clock center = position="(x + linesize / 2), (y + linesize / 2)"
attribs = []
for attrib, what in self.skinAttributes:
if attrib in ["fColor", "hColor", "mColor", "sColor"]: # hand foregroundColor (compatible to old attribs 'h/m/sColor')
self.fColor = parseColor(what)
elif attrib == "bColor": # hand backgroundColor
self.bColor = parseColor(what)
elif attrib == "linesize": # hand length
self.linesize = int(what)
elif attrib == "linewidth": # hand thickness
self.linewidth = int(what)
elif attrib == "positionwidth": # oval dial width, typically >= 2 * linesize
self.positionwidth = int(what)
elif attrib == "positionheight": # oval dial height, typically >= 2 * linesize
self.positionheight = int(what)
else:
attribs.append((attrib, what))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (8) and inherited methods (28)
__init__(self)applySkin(self, desktop, parent)calc(self, w, r, m, m1)hand(self)line_draw(self, x0, y0, x1, y1)changed(self, what)parseSize(self, str)postWidgetCreate(self, instance)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
AudioIcon
lib/python/Components/Renderer/AudioIcon.py, line 7 ↗
Class: Components.Renderer.AudioIcon.AudioIcon. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 2. path, size These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.AudioIcon.AudioIcon
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Class-level constants and option maps
searchPaths = (resolveFilename(SCOPE_GUISKIN), '/usr/share/enigma2/skin_default/')AudioIcon.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.size = None
self.nameAudioCache = {}
self.pngname = ""
self.path = ""
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
AudioIcon.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = []
for (attrib, value) in self.skinAttributes:
if attrib == "path":
self.path = join(value, "")
else:
attribs.append((attrib, value))
if attrib == "size":
value = value.split(",")
if len(value) == 2:
self.size = f"{value[0]}x{value[1]}"
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (29)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Canvas
Replays upstream drawlist instructions into an eCanvas; drawing commands have their own arguments.
lib/python/Components/Renderer/Canvas.py, line 5 ↗
Class: Components.Renderer.Canvas.Canvas. Bases: Renderer.
Native root: eCanvas (18 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: drawlist. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eCanvas — Components.Renderer.Canvas.Canvas
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Canvas.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.sequence = None
self.drawCount = 0
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (5) and inherited methods (29)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
ChannelNumber
lib/python/Components/Renderer/ChannelNumber.py, line 6 ↗
Class: Components.Renderer.ChannelNumber.ChannelNumber. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: serviceref. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.ChannelNumber.ChannelNumber
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
ChannelNumber.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.text = "---"
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (2) and inherited methods (33)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
CiModuleControl
lib/python/Components/Renderer/CiModuleControl.py, line 10 ↗
Class: Components.Renderer.CiModuleControl.CiModuleControl. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 1. allVisible These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.CiModuleControl.CiModuleControl
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
CiModuleControl.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.eDVBCIUIInstance = eDVBCI_UI.getInstance()
self.eDVBCIUIInstance and self.eDVBCIUIInstance.ciStateChanged.get().append(self.ciModuleStateChanged)
self.text = ""
self.allVisible = False
self.noVisibleState = "ciplushelper" in popen("top -n 1").read()
self.colors = parameters.get("CiModuleControlColors", (0x007F7F7F, 0x00FFFF00, 0x0000FF00, 0x00FF2525)) # "state 0 (no module) gray", "state 1 (init module) yellow", "state 2 (module ready) green", "state -1 (error) red"
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
CiModuleControl.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = self.skinAttributes[:]
for (attrib, value) in self.skinAttributes:
if attrib == "allVisible":
self.allVisible = value == "1"
attribs.remove((attrib, value))
break
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (32)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Cover
lib/python/Components/Renderer/Cover.py, line 9 ↗
Class: Components.Renderer.Cover.Cover. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: getCurrentService, getCurrentServiceReference. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.Cover.Cover
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Class-level constants and option maps
EXTENSIONS = ('.jpg', '.png', '.jpeg')Cover.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.nameCache = {}
self.picname = ""
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (30)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
EGclock
lib/python/Components/Renderer/EGclock.py, line 6 ↗
Class: Components.Renderer.EGclock.EGclock. Bases: VariableValue, Renderer.
Native root: eGauge (15 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponentvalue=property(getValue, setValue)— Components.VariableValue.VariableValue
GUI_WIDGET = eGauge — Components.Renderer.EGclock.EGclock
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
EGclock.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableValue.__init__(self)
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (30)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentgetValue(self)—Components.VariableValue.VariableValue
EtAnalogClockLCD
lib/python/Components/Renderer/EtAnalogClockLCD.py, line 4 ↗
Class: Components.Renderer.EtAnalogClockLCD.EtAnalogClockLCD. Bases: AnalogClockLCD.
Native root: eCanvas (18 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Inherited Python attribute handlers
Components.Renderer.AnalogClockLCD.AnalogClockLCD:bColor, fColor, hColor, linesize, linewidth, mColor, positionheight, positionwidth, sColor
Inheritance does not mean every branch calls every base handler. The applySkin implementations below show delegation and precedence.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Upstream accesses in base classes
Components.Renderer.AnalogClockLCD.AnalogClockLCD: accessestext; probesnone.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eCanvas — Components.Renderer.AnalogClockLCD.AnalogClockLCD
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
AnalogClockLCD.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.fColor = gRGB(255, 255, 255, 0)
self.bColor = gRGB(0, 0, 0, 255)
self.forend = -1
self.linewidth = 1
self.positionheight = 1
self.positionwidth = 1
self.linesize = 10
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
AnalogClockLCD.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # HINT: clock center = position="(x + linesize / 2), (y + linesize / 2)"
attribs = []
for attrib, what in self.skinAttributes:
if attrib in ["fColor", "hColor", "mColor", "sColor"]: # hand foregroundColor (compatible to old attribs 'h/m/sColor')
self.fColor = parseColor(what)
elif attrib == "bColor": # hand backgroundColor
self.bColor = parseColor(what)
elif attrib == "linesize": # hand length
self.linesize = int(what)
elif attrib == "linewidth": # hand thickness
self.linewidth = int(what)
elif attrib == "positionwidth": # oval dial width, typically >= 2 * linesize
self.positionwidth = int(what)
elif attrib == "positionheight": # oval dial height, typically >= 2 * linesize
self.positionheight = int(what)
else:
attribs.append((attrib, what))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (0) and inherited methods (35)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, what)—Components.Renderer.AnalogClockLCD.AnalogClockLCDsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.Renderer.AnalogClockLCD.AnalogClockLCDmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.Renderer.AnalogClockLCD.AnalogClockLCDpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentcalc(self, w, r, m, m1)—Components.Renderer.AnalogClockLCD.AnalogClockLCDhand(self)—Components.Renderer.AnalogClockLCD.AnalogClockLCDline_draw(self, x0, y0, x1, y1)—Components.Renderer.AnalogClockLCD.AnalogClockLCDparseSize(self, str)—Components.Renderer.AnalogClockLCD.AnalogClockLCD
FixedLabel
Keeps the XML label text while participating in a source/converter chain, for example for conditional visibility.
lib/python/Components/Renderer/FixedLabel.py, line 5 ↗
Class: Components.Renderer.FixedLabel.FixedLabel. Bases: Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.FixedLabel.FixedLabel
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (0) and inherited methods (31)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, *args, **kwargs)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
FrontpanelLed
Controls a front-panel LED rather than drawing an OSD widget. Its constructor accepts LED index, patterns and a boolean-mode flag. It has no GUIComponent/applySkin lifecycle.
lib/python/Components/Renderer/FrontpanelLed.py, line 6 ↗
Class: Components.Renderer.FrontpanelLed.FrontpanelLed. Bases: Element.
No single GUI_WIDGET declaration. Inspect the construction contract below; this can be a base/helper, composite or non-visual class.
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: boolean, value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (1) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Element
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
FrontpanelLed.__init__(self, which=0, patterns=None, boolean=True)
def __init__(self, which=0, patterns=None, boolean=True):
if not patterns:
patterns = [(20, 0, 0xffffffff), (20, 0x55555555, 0x84fc8c04)]
self.which = which
self.boolean = boolean
self.patterns = patterns
Element.__init__(self)
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
Declared methods (2) and inherited methods (9)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.Element.Element
Label
Displays upstream text. The renderer applies eLabel attributes and refreshes its text when the source changes.
lib/python/Components/Renderer/Label.py, line 6 ↗
Class: Components.Renderer.Label.Label. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: text. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.Label.Label
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Label.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (3) and inherited methods (32)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
LcdPicon
lib/python/Components/Renderer/LcdPicon.py, line 123 ↗
Class: Components.Renderer.LcdPicon.LcdPicon. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 2. path, size These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.LcdPicon.LcdPicon
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
LcdPicon.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.PicLoad = ePicLoad()
self.PicLoad.PictureData.get().append(self.updatePicon)
self.piconsize = (0, 0)
self.pngname = ""
self.lastPath = None
defaultName = "lcd_picon_default" if BW else "picon_default"
pngname = findLcdPicon(defaultName)
self.defaultpngname = None
if not pngname:
tmp = resolveFilename(SCOPE_GUISKIN, f"{defaultName}.png")
if exists(tmp):
pngname = tmp
else:
pngname = resolveFilename(SCOPE_SKINS, f"skin_default/{defaultName}.png")
if getsize(pngname):
self.defaultpngname = pngname
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
LcdPicon.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = self.skinAttributes[:]
for (attrib, value) in self.skinAttributes:
if attrib == "path":
self.addPath(value)
attribs.remove((attrib, value))
elif attrib == "size":
self.piconsize = value
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (6) and inherited methods (28)
__init__(self)addPath(self, value)applySkin(self, desktop, parent)postWidgetCreate(self, instance)updatePicon(self, picInfo=None)changed(self, what)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Listbox
Displays native list content provided upstream, commonly by XmlMultiContent or TemplatedMultiContent. It also propagates selection changes to the source.
lib/python/Components/Renderer/Listbox.py, line 14 ↗
Class: Components.Renderer.Listbox.Listbox. Bases: Renderer.
Native root: eListbox (63 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: content, scrollbarMode, selectionEnabled. Attribute probes: scrollbarMode, selectionEnabled. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (8) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponentwrapAround=property(getWrapAround, setWrapAround)— Components.Renderer.Listbox.Listboxcontent=property(lambda self: self.__content, setContent)— Components.Renderer.Listbox.ListboxselectionEnabled=property(lambda self: self.__selectionEnabled, setSelectionEnabled)— Components.Renderer.Listbox.Listboxindex=property(getIndex, moveToIndex)— Components.Renderer.Listbox.ListboxscrollbarMode=property(getScrollbarMode, setScrollbarMode)— Components.Renderer.Listbox.Listbox
GUI_WIDGET = eListbox — Components.Renderer.Listbox.Listbox
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Listbox.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.__content = None
self.__selectionEnabled = True # FIXME: The default is true already.
self.scale = None
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
Listbox.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
self.scale = parent.scale
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (18) and inherited methods (26)
__init__(self)applySkin(self, desktop, parent)postWidgetCreate(self, instance)preWidgetRemove(self, instance)setWrapAround(self, wrapAround)getWrapAround(self)setContent(self, content)contentChanged(self)setSelectionEnabled(self, enabled)selectionChanged(self)entryChanged(self, index)entry_changed(self, index)getIndex(self)moveToIndex(self, index)move(self, direction)getScrollbarMode(self)setScrollbarMode(self, mode)changed(self, what)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Rendererresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponent
NextEpgInfo
lib/python/Components/Renderer/NextEpgInfo.py, line 7 ↗
Class: Components.Renderer.NextEpgInfo.NextEpgInfo. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.NextEpgInfo.NextEpgInfo
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
NextEpgInfo.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.epgcache = eEPGCache.getInstance()
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (2) and inherited methods (33)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
NextEvent
lib/python/Components/Renderer/NextEvent.py, line 31 ↗
Class: Components.Renderer.NextEvent.NextEvent. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: info, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.NextEvent.NextEvent
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
NextEvent.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.epgcache = eEPGCache.getInstance()
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (2) and inherited methods (33)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
NextEvents
lib/python/Components/Renderer/NextEvents.py, line 7 ↗
Class: Components.Renderer.NextEvents.NextEvents. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 2. lines, number These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.NextEvents.NextEvents
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
NextEvents.__init__(self)
def __init__(self):
self.lines = False
Renderer.__init__(self)
VariableText.__init__(self)
self.epgcache = eEPGCache.getInstance()
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
NextEvents.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
self.number = 0
attribs = []
for (attrib, value) in self.skinAttributes:
if attrib == "number":
self.number = int(value)
elif attrib == "lines":
self.number = int(value) + 1
self.lines = True
else:
attribs.append((attrib, value))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (5) and inherited methods (31)
__init__(self)applySkin(self, desktop, parent)connect(self, source)changed(self, what)build_eventstr(self, event)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
Picon
Resolves service picons and updates an ePixmap. Path and sizing decisions in applySkin supplement the native image attributes.
lib/python/Components/Renderer/Picon.py, line 148 ↗
Class: Components.Renderer.Picon.Picon. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 3. mode, path, size These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.Picon.Picon
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Picon.__init__(self)
def __init__(self):
Renderer.__init__(self)
# self.PicLoad = ePicLoad()
# self.PicLoad.PictureData.get().append(self.updatePicon)
self.piconsize = (0, 0)
self.pngname = ""
self.lastPath = None
self.mode = None
self.setDefaultPicon()
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
Picon.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = self.skinAttributes[:]
for (attrib, value) in self.skinAttributes:
if attrib == "path":
self.addPath(value)
attribs.remove((attrib, value))
elif attrib == "mode":
if value in ("infobar", "channelselection"):
self.mode = value
self.setDefaultPicon(value)
attribs.remove((attrib, value))
elif attrib == "size":
self.piconsize = value
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (6) and inherited methods (28)
__init__(self)setDefaultPicon(self, mode=None)addPath(self, value)applySkin(self, desktop, parent)postWidgetCreate(self, instance)changed(self, what)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
PiconBg
lib/python/Components/Renderer/PiconBg.py, line 7 ↗
Class: Components.Renderer.PiconBg.PiconBg. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.PiconBg.PiconBg
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
PiconBg.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.pngname = ""
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (3) and inherited methods (29)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Pig
Places a live video plane using eVideoWidget. Decoder/PiP behaviour depends on Python configuration and hardware. Use OSD-only captures for documentation examples.
lib/python/Components/Renderer/Pig.py, line 8 ↗
Class: Components.Renderer.Pig.Pig. Bases: Renderer.
Native root: eVideoWidget (31 current central attribute names).
Names explicitly handled in this class's applySkin: 1. hidePip These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eVideoWidget — Components.Renderer.Pig.Pig
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Pig.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.Position = None
self.Size = None
self.hidePip = True
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
Pig.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = list(self.skinAttributes or [])
for attrib, value in list(attribs):
if attrib == "hidePip":
self.hidePip = str(value).strip().lower() in ("1", "true", "yes", "on")
attribs.remove((attrib, value))
self.skinAttributes = attribs
ret = Renderer.applySkin(self, desktop, parent)
if ret and self.instance:
self.Position = self.instance.position()
self.Size = self.instance.size()
return ret
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (7) and inherited methods (26)
__init__(self)postWidgetCreate(self, instance)preWidgetRemove(self, instance)applySkin(self, desktop, parent)_applyPosition(self)onShow(self)onHide(self)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, *args, **kwargs)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponent
Pixmap
Displays an upstream pixmap, or chooses from the comma-separated pixmaps attribute using numeric source text. A source pixmap can take precedence.
lib/python/Components/Renderer/Pixmap.py, line 7 ↗
Class: Components.Renderer.Pixmap.Pixmap. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 1. pixmaps These can override central meanings.
Direct upstream accesses declared here: pixmap, text. Attribute probes: pixmap, text. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.Pixmap.Pixmap
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Pixmap.__init__(self)
def __init__(self):
self.pixmaps = []
Renderer.__init__(self)
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
Pixmap.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attributes = []
for (attrib, value) in self.skinAttributes:
if attrib == "pixmaps":
pixmaps = value.split(",")
for pixmap in pixmaps:
self.pixmaps.append(LoadPixmap(resolveFilename(SCOPE_GUISKIN, pixmap.strip())))
else:
attributes.append((attrib, value))
self.skinAttributes = attributes
result = Renderer.applySkin(self, desktop, parent)
if self.pixmaps:
self.changed((self.CHANGED_DEFAULT,))
return result
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (28)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
PositionGauge
Binds playback length, position and cutlist to ePositionGauge, including seek position updates.
lib/python/Components/Renderer/PositionGauge.py, line 5 ↗
Class: Components.Renderer.PositionGauge.PositionGauge. Bases: Renderer.
Native root: ePositionGauge (18 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: cutlist, length, position. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (7) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition, setPosition)— Components.Renderer.PositionGauge.PositionGaugelength=property(getLength, setLength)— Components.Renderer.PositionGauge.PositionGaugecutlist=property(getCutlist, setCutlist)— Components.Renderer.PositionGauge.PositionGaugeseek_pointer_enabled=property(getSeekEnable, setSeekEnable)— Components.Renderer.PositionGauge.PositionGaugeseek_pointer_position=property(getSeekPosition, setSeekPosition)— Components.Renderer.PositionGauge.PositionGauge
GUI_WIDGET = ePositionGauge — Components.Renderer.PositionGauge.PositionGauge
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
PositionGauge.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.__position = 0
self.__seek_position = 0
self.__length = 0
self.__seek_enable = 0
self.__cutlist = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (14) and inherited methods (27)
__init__(self)postWidgetCreate(self, instance)changed(self, what)cutlist_changed(self)getPosition(self)setPosition(self, pos)getLength(self)setLength(self, len)getCutlist(self)setCutlist(self, cutlist)getSeekEnable(self)setSeekEnable(self, val)getSeekPosition(self)setSeekPosition(self, pos)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
PrimeTime
lib/python/Components/Renderer/PrimeTime.py, line 11 ↗
Class: Components.Renderer.PrimeTime.PrimeTime. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: event, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.PrimeTime.PrimeTime
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Class-level constants and option maps
EVENT_TOLERANCE = 1200PrimeTime.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.epgCache = eEPGCache.getInstance()
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (2) and inherited methods (33)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Progress
Displays source value within source range, with clamping and an empty-value fallback. Uses eSlider attributes.
lib/python/Components/Renderer/Progress.py, line 6 ↗
Class: Components.Renderer.Progress.Progress. Bases: VariableValue, Renderer.
Native root: eSlider (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: range, value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (5) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponentvalue=property(getValue, setValue)— Components.VariableValue.VariableValuerange=property(getRange, setRange)— Components.Renderer.Progress.Progress
GUI_WIDGET = eSlider — Components.Renderer.Progress.Progress
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Progress.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableValue.__init__(self)
self.__range = (0, 100)
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (5) and inherited methods (31)
__init__(self)changed(self, what)postWidgetCreate(self, instance)setRange(self, range)getRange(self)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetValue(self, value)—Components.VariableValue.VariableValuegetValue(self)—Components.VariableValue.VariableValue
pstrRndr
lib/python/Components/Renderer/pstrRndr.py, line 9 ↗
Class: Components.Renderer.pstrRndr.pstrRndr. Bases: Renderer.
Native root: ePixmap (18 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = ePixmap — Components.Renderer.pstrRndr.pstrRndr
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
pstrRndr.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = []
for (attrib, value,) in self.skinAttributes:
attribs.append((attrib, value))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (3) and inherited methods (29)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
QRCode
Renders upstream text as a QR code using eQRCode attributes.
lib/python/Components/Renderer/QRCode.py, line 7 ↗
Class: Components.Renderer.QRCode.QRCode. Bases: VariableText, Renderer.
Native root: eQRCode (19 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: text. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eQRCode — Components.Renderer.QRCode.QRCode
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
QRCode.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (32)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
RatingIconLabel
lib/python/Components/Renderer/RatingIconLabel.py, line 8 ↗
Class: Components.Renderer.RatingIconLabel.RatingIconLabel. Bases: Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 3. colors, extendDirection, sidesMargin These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: text. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.RatingIconLabel.RatingIconLabel
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
RatingIconLabel.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.colors = {}
self.extendDirection = "right"
self.sidesMargin = 20
self.initialWidth = 0
self.initialXPos = 0
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
RatingIconLabel.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = []
for (attrib, value) in self.skinAttributes:
match attrib:
case "colors":
self.colors = {int(k): parseColor(v) for k, v in (item.split(":") for item in value.split(","))}
case "extendDirection":
self.extendDirection = value
case "sidesMargin":
self.sidesMargin = int(value)
case _:
attribs.append((attrib, value))
self.skinAttributes = attribs
result = Renderer.applySkin(self, desktop, parent)
self.initialWidth = self.instance.size().width()
self.initialXPos = self.instance.position().x()
self.changed((self.CHANGED_DEFAULT,))
return result
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (5) and inherited methods (28)
__init__(self)postWidgetCreate(self, instance)applySkin(self, desktop, parent)hideLabel(self)changed(self, what)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Rectangle
Draws a decorative rectangle within a renderer chain, including conditional visibility.
lib/python/Components/Renderer/Rectangle.py, line 5 ↗
Class: Components.Renderer.Rectangle.Rectangle. Bases: Renderer.
Native root: eRectangle (15 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eRectangle — Components.Renderer.Rectangle.Rectangle
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (2) and inherited methods (30)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, *args, **kwargs)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
Renderer
Base class connecting GUIComponent lifecycle to the Element source graph. Use a concrete renderer in XML.
lib/python/Components/Renderer/Renderer.py, line 5 ↗
Class: Components.Renderer.Renderer.Renderer. Bases: GUIComponent, Element.
No single GUI_WIDGET declaration. Inspect the construction contract below; this can be a base/helper, composite or non-visual class.
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (3) and inherited methods (29)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, *args, **kwargs)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
RollerCharLCD
lib/python/Components/Renderer/RollerCharLCD.py, line 8 ↗
Class: Components.Renderer.RollerCharLCD.RollerCharLCD. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.RollerCharLCD.RollerCharLCD
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
RollerCharLCD.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.moveTimerText = None
self.delayTimer = None
self.stringlength = 16 if BoxInfo.getItem("machinebuild") in ("vuduo", "sf4008", "beyonwizu4") else 12
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (5) and inherited methods (32)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
RollerCharLCDLong
lib/python/Components/Renderer/RollerCharLCDLong.py, line 7 ↗
Class: Components.Renderer.RollerCharLCDLong.RollerCharLCDLong. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 2. font, size These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.RollerCharLCDLong.RollerCharLCDLong
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
RollerCharLCDLong.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.stringlength = 36
self.moveTimerText = None
self.delayTimer = None
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
RollerCharLCDLong.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = []
width = None
fontsize = None
for attrib, value in self.skinAttributes:
if attrib == "size":
width = float(value.split(",")[0])
elif attrib == "font":
fontsize = float(value.split(";")[1])
attribs.append((attrib, value))
self.skinAttributes = attribs
if width and fontsize:
self.stringlength = int(width / fontsize * 1.9)
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (6) and inherited methods (31)
__init__(self)applySkin(self, desktop, parent)connect(self, source)changed(self, what)moveTimerTextRun(self)delayTimergo(self)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
RunningText
Composite renderer: an eWidget viewport contains an eLabel. applySkin consumes font, text appearance and movement options before forwarding remaining attributes. Its effective options exceed the eWidget table.
lib/python/Components/Renderer/RunningText.py, line 56 ↗
Class: Components.Renderer.RunningText.RunningText. Bases: Renderer.
Native root: eWidget (15 current central attribute names).
Names explicitly handled in this class's applySkin: 12. backgroundColor, borderColor, borderWidth, font, foregroundColor, halign, noWrap, options, shadowColor, shadowOffset, transparent, valign These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eWidget — Components.Renderer.RunningText.RunningText
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
RunningText.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.type = NONE
self.txfont = gFont("Regular", 14)
self.soffset = (0, 0)
self.txtflags = 0
self.txtext = ""
self.scroll_label = self.mTimer = self.mStartPoint = None
self.X = self.Y = self.W = self.H = self.mStartDelay = 0
self.mAlways = 1 # always move text
self.mStep = 1 # moving step: 1 pixel per 1 time
self.mStepTimeout = 50 # step timeout: 1 step per 50 milliseconds ( speed: 20 pixel per second )
self.direction = LEFT
self.mLoopTimeout = self.mOneShot = 0
self.mRepeat = 0
self.mPageDelay = self.mPageLength = 0
self.lineHeight = 0 # for text height auto correction on dmm-enigma2
self.mShown = 0
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
RunningText.applySkin(self, desktop, screen)
def applySkin(self, desktop, screen):
def retValue(val, limit, default, Min=False):
try:
if Min:
x = min(limit, int(val))
else:
x = max(limit, int(val))
except Exception:
x = default
return x
def setWrapFlag(attrib, value):
if (attrib.lower() == "wrap" and value == "0") or (attrib.lower() == "nowrap" and value != "0"):
self.txtflags &= ~RT_WRAP
else:
self.txtflags |= RT_WRAP
self.halign = valign = eLabel.alignLeft
if self.skinAttributes:
attribs = []
for (attrib, value) in self.skinAttributes:
if attrib == "font":
self.txfont = parseFont(value, screen.scale)
elif attrib == "foregroundColor":
self.scroll_label.setForegroundColor(parseColor(value))
elif attrib in ("shadowColor", "borderColor"): # fake for openpli-enigma2
self.scroll_label.setShadowColor(parseColor(value))
elif attrib == "shadowOffset":
x, y = value.split(",")
self.soffset = (int(x), int(y))
self.scroll_label.setShadowOffset(ePoint(self.soffset))
elif attrib == "borderWidth": # fake for openpli-enigma2
self.soffset = (-int(value), -int(value))
elif attrib == "valign" and value in ("top", "center", "bottom"):
valign = {"top": eLabel.alignTop, "center": eLabel.alignCenter, "bottom": eLabel.alignBottom}[value]
self.txtflags |= {"top": RT_VALIGN_TOP, "center": RT_VALIGN_CENTER, "bottom": RT_VALIGN_BOTTOM}[value]
elif attrib == "halign" and value in ("left", "center", "right", "block"):
self.halign = {"left": eLabel.alignLeft, "center": eLabel.alignCenter, "right": eLabel.alignRight, "block": eLabel.alignBlock}[value]
self.txtflags |= {"left": RT_HALIGN_LEFT, "center": RT_HALIGN_CENTER, "right": RT_HALIGN_RIGHT, "block": RT_HALIGN_BLOCK}[value]
elif attrib == "noWrap":
setWrapFlag(attrib, value)
elif attrib == "options":
options = value.split(",")
for o in options:
if "=" in o:
opt, val = (x.strip() for x in o.split("=", 1))
else:
opt, val = o.strip(), ""
if opt == "":
continue
elif opt in ("wrap", "nowrap"):
setWrapFlag(opt, val)
elif opt == "movetype" and val in ("none", "running", "swimming"):
self.type = {"none": NONE, "running": RUNNING, "swimming": SWIMMING}[val]
elif opt == "direction" and val in ("left", "right", "top", "bottom"):
self.direction = {"left": LEFT, "right": RIGHT, "top": TOP, "bottom": BOTTOM}[val]
elif opt == "step" and val:
self.mStep = retValue(val, 1, self.mStep)
elif opt == "steptime" and val:
self.mStepTimeout = retValue(val, 25, self.mStepTimeout)
elif opt == "startdelay" and val:
self.mStartDelay = retValue(val, 0, self.mStartDelay)
elif opt == "pause" and val:
self.mLoopTimeout = retValue(val, 0, self.mLoopTimeout)
elif opt == "oneshot" and val:
self.mOneShot = retValue(val, 0, self.mOneShot)
elif opt == "repeat" and val:
self.mRepeat = retValue(val, 0, self.mRepeat)
elif opt == "always" and val:
self.mAlways = retValue(val, 0, self.mAlways)
elif opt == "startpoint" and val:
self.mStartPoint = int(val)
elif opt == "pagedelay" and val:
self.mPageDelay = retValue(val, 0, self.mPageDelay)
elif opt == "pagelength" and val:
self.mPageLength = retValue(val, 0, self.mPageLength)
else:
attribs.append((attrib, value))
if attrib == "backgroundColor":
self.scroll_label.setBackgroundColor(parseColor(value))
elif attrib == "transparent":
self.scroll_label.setTransparent(int(value))
self.skinAttributes = attribs
ret = Renderer.applySkin(self, desktop, screen)
if self.mOneShot:
self.mOneShot = max(self.mStepTimeout, self.mOneShot)
if self.mLoopTimeout:
self.mLoopTimeout = max(self.mStepTimeout, self.mLoopTimeout)
if self.mPageDelay:
self.mPageDelay = max(self.mStepTimeout, self.mPageDelay)
self.scroll_label.setFont(self.txfont)
if not (self.txtflags & RT_WRAP):
self.scroll_label.setWrap(0)
self.scroll_label.setVAlign(valign)
self.scroll_label.setHAlign(self.halign)
self.scroll_label.move(ePoint(0, 0))
self.scroll_label.resize(eSize(self.W, self.H))
# test for auto correction text height:
if self.direction in (TOP, BOTTOM):
from enigma import fontRenderClass
flh = int(fontRenderClass.getInstance().getLineHeight(self.txfont) or self.txfont.pointSize / 6 + self.txfont.pointSize)
self.scroll_label.setText("WQq")
if flh > self.scroll_label.calculateSize().height():
self.lineHeight = flh
self.scroll_label.setText("")
return ret
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (10) and inherited methods (25)
__init__(self)postWidgetCreate(self, instance)preWidgetRemove(self, instance)applySkin(self, desktop, screen)doSuspend(self, suspended)connect(self, source)changed(self, what)moveLabel(self, X, Y)calcMoving(self)movingLoop(self)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponent
SingleEpgList
lib/python/Components/Renderer/SingleEpgList.py, line 7 ↗
Class: Components.Renderer.SingleEpgList.SingleEpgList. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 1. maxEvents These can override central meanings.
Direct upstream accesses declared here: event, service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.SingleEpgList.SingleEpgList
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
SingleEpgList.__init__(self)
def __init__(self):
self.maxEvents = 4
Renderer.__init__(self)
VariableText.__init__(self)
self.epgcache = eEPGCache.getInstance()
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
SingleEpgList.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = self.skinAttributes[:]
for (attrib, value) in self.skinAttributes:
if attrib == "maxEvents":
self.maxEvents = int(value)
attribs.remove((attrib, value))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (3) and inherited methods (32)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
VideoSize
lib/python/Components/Renderer/VideoSize.py, line 10 ↗
Class: Components.Renderer.VideoSize.VideoSize. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.VideoSize.VideoSize
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VideoSize.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (2) and inherited methods (33)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
VolumeText
lib/python/Components/Renderer/VolumeText.py, line 30 ↗
Class: Components.Renderer.VolumeText.VolumeText. Bases: Renderer, VariableText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.VolumeText.VolumeText
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VolumeText.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.vol_timer = eTimer()
self.vol_timer.callback.append(self.pollme)
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (5) and inherited methods (31)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
VReference
lib/python/Components/Renderer/VReference.py, line 23 ↗
Class: Components.Renderer.VReference.VReference. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: service. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.VReference.VReference
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VReference.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (3) and inherited methods (32)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
VRunningText
Canvas-based moving text renderer with its own applySkin options. Do not assume it accepts exactly the same options as RunningText.
lib/python/Components/Renderer/VRunningText.py, line 34 ↗
Class: Components.Renderer.VRunningText.VRunningText. Bases: Renderer.
Native root: eCanvas (18 current central attribute names).
Names explicitly handled in this class's applySkin: 9. backgroundColor, font, foregroundColor, halign, noWrap, options, shadowColor, shadowOffset, valign These can override central meanings.
Direct upstream accesses declared here: text. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eCanvas — Components.Renderer.VRunningText.VRunningText
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VRunningText.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.type = NONE
self.txfont = gFont("Regular", 14)
self.fcolor = gRGB(RGB(255, 255, 255))
self.bcolor = gRGB(RGB(0, 0, 0))
self.scolor = None
self.soffset = (0, 0)
self.txtflags = 0 # RT_WRAP
self.txtext = ""
self.test_label = self.mTimer = self.mStartPoint = None
self.X = self.Y = self.W = self.H = self.mStartDelay = 0
self.mAlways = 1 # always move text
self.mStep = 1 # moving step: 1 pixel per 1 time
self.mStepTimeout = 5000 # step timeout: 1 step per 50 milliseconds ( speed: 20 pixel per second )
self.direction = LEFT
self.mLoopTimeout = self.mOneShot = 0
self.mRepeat = 0
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VRunningText.applySkin(self, desktop, screen)
def applySkin(self, desktop, screen):
def retValue(val, limit, default, Min=False):
try:
if Min:
x = min(limit, int(val))
else:
x = max(limit, int(val))
except Exception:
x = default
return x
self.halign = valign = eLabel.alignLeft
if self.skinAttributes:
attribs = []
for (attrib, value) in self.skinAttributes:
if attrib == "font":
self.txfont = parseFont(value, screen.scale)
elif attrib == "foregroundColor":
self.fcolor = parseColor(value)
elif attrib == "backgroundColor":
self.bcolor = parseColor(value)
elif attrib == "shadowColor":
self.scolor = parseColor(value)
elif attrib == "shadowOffset":
x, y = value.split(",")
self.soffset = (int(x), int(y))
elif attrib == "valign" and value in ("top", "center", "bottom"):
valign = {"top": eLabel.alignTop, "center": eLabel.alignCenter, "bottom": eLabel.alignBottom}[value]
self.txtflags |= {"top": RT_VALIGN_TOP, "center": RT_VALIGN_CENTER, "bottom": RT_VALIGN_BOTTOM}[value]
elif attrib == "halign" and value in ("left", "center", "right", "block"):
self.halign = {"left": eLabel.alignLeft, "center": eLabel.alignCenter, "right": eLabel.alignRight, "block": eLabel.alignBlock}[value]
self.txtflags |= {"left": RT_HALIGN_LEFT, "center": RT_HALIGN_CENTER, "right": RT_HALIGN_RIGHT, "block": RT_HALIGN_BLOCK}[value]
elif attrib == "noWrap":
if value == "0":
self.txtflags |= RT_WRAP
else:
self.txtflags &= ~RT_WRAP
elif attrib == "options":
options = value.split(",")
for opt in options:
val = ""
pos = opt.find("=")
if pos != -1:
val = opt[pos + 1:].strip()
opt = opt[:pos].strip()
if opt == "wrap":
if val == "0":
self.txtflags &= ~RT_WRAP
else:
self.txtflags |= RT_WRAP
elif opt == "nowrap":
if val == "0":
self.txtflags |= RT_WRAP
else:
self.txtflags &= ~RT_WRAP
elif opt == "movetype" and val in ("none", "running", "swimming"):
self.type = {"none": NONE, "running": RUNNING, "swimming": SWIMMING}[val]
elif opt == "direction" and val in ("left", "right", "top", "bottom"):
self.direction = {"left": LEFT, "right": RIGHT, "top": TOP, "bottom": BOTTOM}[val]
elif opt == "step" and val:
#retValue(val, limit, default, Min=False)
self.mStep = retValue(val, 1, self.mStep)
elif opt == "steptime" and val:
self.mStepTimeout = retValue(val, 25, self.mStepTimeout)
elif opt == "startdelay" and val:
self.mStartDelay = retValue(val, 0, self.mStartDelay)
elif opt == "pause" and val:
self.mLoopTimeout = retValue(val, 0, self.mLoopTimeout)
elif opt == "oneshot" and val:
self.mOneShot = retValue(val, 0, self.mOneShot)
elif opt == "repeat" and val:
self.mRepeat = retValue(val, 0, self.mRepeat)
elif opt == "always" and val:
self.mAlways = retValue(val, 0, self.mAlways)
elif opt == "startpoint" and val:
self.mStartPoint = int(val)
else:
attribs.append((attrib, value))
self.skinAttributes = attribs
ret = Renderer.applySkin(self, desktop, screen)
#if self.type == RUNNING and self.direction in (LEFT,RIGHT):
# self.halign = eLabel.alignLeft
# self.txtflags = RT_HALIGN_LEFT | (self.txtflags & RT_WRAP)
if self.mOneShot:
self.mOneShot = max(self.mStepTimeout, self.mOneShot)
if self.mLoopTimeout:
self.mLoopTimeout = max(self.mStepTimeout, self.mLoopTimeout)
self.test_label.setFont(self.txfont)
#self.test_label.setForegroundColor(self.fcolor)
#self.test_label.setBackgroundColor(self.bcolor)
#if not self.scolor is None:
# self.test_label.setShadowColor(self.scolor)
# self.test_label.setShadowOffset(ePoint(self.soffset[0], self.soffset[1]))
if not (self.txtflags & RT_WRAP):
self.test_label.setWrap(0)
self.test_label.setVAlign(valign)
self.test_label.setHAlign(self.halign)
self.test_label.move(ePoint(self.W, self.H))
self.test_label.resize(eSize(self.W, self.H))
#self.test_label.hide()
#self.changed((self.CHANGED_DEFAULT,))
return ret
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (10) and inherited methods (25)
__init__(self)postWidgetCreate(self, instance)preWidgetRemove(self, instance)applySkin(self, desktop, screen)doSuspend(self, suspended)connect(self, source)changed(self, what)drawText(self, X, Y)calcMoving(self)movingLoop(self)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponent
VtiEmuInfo
lib/python/Components/Renderer/VtiEmuInfo.py, line 8 ↗
Class: Components.Renderer.VtiEmuInfo.VtiEmuInfo. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.VtiEmuInfo.VtiEmuInfo
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VtiEmuInfo.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (32)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
VtiImageVersion
lib/python/Components/Renderer/VtiImageVersion.py, line 7 ↗
Class: Components.Renderer.VtiImageVersion.VtiImageVersion. Bases: VariableText, Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponenttext=property(getText, setText)— Components.VariableText.VariableText
GUI_WIDGET = eLabel — Components.Renderer.VtiImageVersion.VtiImageVersion
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VtiImageVersion.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (4) and inherited methods (32)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.VariableText.VariableTextpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentsetText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableText
VVolumeText
lib/python/Components/Renderer/VVolumeText.py, line 5 ↗
Class: Components.Renderer.VVolumeText.VVolumeText. Bases: VolumeText.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (4) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
text=property(getText, setText)— Components.VariableText.VariableTextsuspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.VolumeText.VolumeText
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VolumeText.__init__(self)
def __init__(self):
Renderer.__init__(self)
VariableText.__init__(self)
self.vol_timer = eTimer()
self.vol_timer.callback.append(self.pollme)
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VariableText.__init__(self)
def __init__(self):
object.__init__(self)
self.message = ""
self.instance = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (0) and inherited methods (35)
Inherited methods
setText(self, text)—Components.VariableText.VariableTextsetMarkedPos(self, pos)—Components.VariableText.VariableTextgetText(self)—Components.VariableText.VariableTextpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentconnectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, what)—Components.Renderer.VolumeText.VolumeTextsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.VolumeText.VolumeTextonHide(self)—Components.Renderer.VolumeText.VolumeTextapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponentpollme(self)—Components.Renderer.VolumeText.VolumeText
VWatches
lib/python/Components/Renderer/VWatches.py, line 24 ↗
Class: Components.Renderer.VWatches.VWatches. Bases: Renderer.
Native root: eCanvas (18 current central attribute names).
Names explicitly handled in this class's applySkin: 2. backgroundColor, foregroundColor These can override central meanings.
Direct upstream accesses declared here: value. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eCanvas — Components.Renderer.VWatches.VWatches
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
VWatches.__init__(self)
def __init__(self):
Renderer.__init__(self)
self.fColor = gRGB(255, 255, 255, 0)
self.bColor = gRGB(0, 0, 0, 255)
self.numval = -1
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
VWatches.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent):
attribs = []
for (attrib, what) in self.skinAttributes:
if (attrib == "foregroundColor"):
self.fColor = parseColor(what)
elif (attrib == "backgroundColor"):
self.bColor = parseColor(what)
else:
attribs.append((attrib, what))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (7) and inherited methods (28)
__init__(self)applySkin(self, desktop, parent)calculate(self, w, r, m)hand(self)draw_line(self, x0, y0, x1, y1)changed(self, what)postWidgetCreate(self, instance)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.Renderermove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
VWeatherUpdater
lib/python/Components/Renderer/VWeatherUpdater.py, line 6 ↗
Class: Components.Renderer.VWeatherUpdater.VWeatherUpdater. Bases: Renderer.
Native root: eLabel (30 current central attribute names).
Names explicitly handled in this class's applySkin: 0. No named comparisons or local-handler dispatch found here; check inherited handling below. These can override central meanings.
Direct upstream accesses declared here: none. Attribute probes: none. These are source-code accesses, not a claim that every property is required in every mode.
Effective Python properties (3) and value/range constants
These are Python descriptors, including inherited ones. Their usefulness as renderer outputs depends on the selected mode. Internal properties such as suspended manage lifecycle.
suspended=property(lambda self: self.__suspended, setSuspend)— Components.Element.Elementvisible=property(getVisible, setVisible)— Components.GUIComponent.GUIComponentposition=property(getPosition)— Components.GUIComponent.GUIComponent
GUI_WIDGET = eLabel — Components.Renderer.VWeatherUpdater.VWeatherUpdater
Arguments, defaults and skin parsing — exact implementation
Read the selected class first, then any base constructor or applySkin it calls. This preserves separators, defaults, validation and conditional behaviour. It is source code for reference, not a desktop Python example.
Renderer.__init__(self)
def __init__(self):
Element.__init__(self)
GUIComponent.__init__(self)
GUIComponent.__init__(self)
def __init__(self):
self.onVisibilityChange = []
self.instance = None
self.visiblity = False
self.visible = True
self.skinAttributes = None
self.deprecationInfo = None
Element.__init__(self)
def __init__(self):
self.downstream_elements = CList()
self.master = None
self.sources = []
self.source = None
self.__suspended = True
self.cache = None
self.onChanged = []
GUIComponent.applySkin(self, desktop, parent)
def applySkin(self, desktop, parent): # This only works with normal widgets, if you don't have a self.instance override this method.
if not self.visible:
self.instance.hide()
if self.skinAttributes is None:
result = False
else:
# // Workaround for values from attributes the not be set.
#
# The order of some attributes is crucial if they are applied. Also, an attribute may be responsible that another does not take effect and occurs at different skins.
# It was noticed at "scrollbarSliderBorderWidth" and "scrollbarSliderForegroundColor".
#
# if config.skin.primary_skin.value.split("/")[0] not in ("DMConcinnity-HD"):
# self.skinAttributes.sort()
#
# NOTE: The code above is invalid. It always returns False! It is being removed until it's need is confirmed.
# To be correct the code could/should be one of, depending on the original intention:
# if config.skin.primary_skin.value.split("/")[0] != "DMConcinnity-HD":
# if config.skin.primary_skin.value.split("/")[0] == "DMConcinnity-HD":
#
# //
applyAllAttributes(self.instance, desktop, self.skinAttributes, parent.scale)
result = True
return result
GUIComponent.createWidget(self, parent)
def createWidget(self, parent): # Default for argument less widget constructor.
return self.GUI_WIDGET(parent)
GUIComponent.GUIcreate(self, parent)
def GUIcreate(self, parent): # Default implementation for only one widget per component. Feel free to override!
self.instance = self.createWidget(parent)
self.postWidgetCreate(self.instance)
Declared methods (1) and inherited methods (31)
Inherited methods
connectDownstream(self, downstream)—Components.Element.ElementconnectUpstream(self, upstream)—Components.Element.Elementconnect(self, upstream)—Components.Element.ElementdisconnectAll(self)—Components.Element.ElementdisconnectDownstream(self, downstream)—Components.Element.Elementchanged(self, *args, **kwargs)—Components.Element.ElementsetSuspend(self, suspended)—Components.Element.ElementcheckSuspend(self)—Components.Element.ElementdoSuspend(self, suspend)—Components.Element.Elementdestroy(self)—Components.GUIComponent.GUIComponentexecBegin(self)—Components.GUIComponent.GUIComponentexecEnd(self)—Components.GUIComponent.GUIComponentonShow(self)—Components.Renderer.Renderer.RendereronHide(self)—Components.Renderer.Renderer.RendererapplySkin(self, desktop, parent)—Components.GUIComponent.GUIComponentmove(self, xPos, yPos=None)—Components.GUIComponent.GUIComponentresize(self, width, height=None)—Components.GUIComponent.GUIComponentsetZPosition(self, zPosition)—Components.GUIComponent.GUIComponentshow(self)—Components.GUIComponent.GUIComponenthide(self)—Components.GUIComponent.GUIComponentgetVisible(self)—Components.GUIComponent.GUIComponentsetVisible(self, visible)—Components.GUIComponent.GUIComponentsetPosition(self, xPos, yPos)—Components.GUIComponent.GUIComponentgetPosition(self)—Components.GUIComponent.GUIComponentgetWidth(self)—Components.GUIComponent.GUIComponentgetHeight(self)—Components.GUIComponent.GUIComponentGUIcreate(self, parent)—Components.GUIComponent.GUIComponentGUIdelete(self)—Components.GUIComponent.GUIComponentcreateWidget(self, parent)—Components.GUIComponent.GUIComponentpostWidgetCreate(self, instance)—Components.GUIComponent.GUIComponentpreWidgetRemove(self, instance)—Components.GUIComponent.GUIComponent
No matching class. Clear the filter or use the handbook search.
Inheritance and overrides
Abschnitt betitelt „Inheritance and overrides“Use the native table as the starting point, then read the renderer’s handling. For example, RunningText’s native root is eWidget, but its font, halign, valign, shadow and movement options configure an internal label. Copying the eWidget count alone would omit those options. Conversely, copying all eLabel attributes into RunningText assumes forwarding that its implementation may not provide.
The parser code also settles defaults and precedence. A supplied Pixmap.source.pixmap can replace an image chosen from pixmaps. Label.changed() replaces the XML text. Attributes are case-sensitive unless a particular parser explicitly normalises them.
