[core/widget] make arbitrary modules scrollable
Use a boolean parameter "scrolling" that's applied generically to modules to allow arbitrary modules to scroll. see #606 TODO: Add to documentation
This commit is contained in:
parent
e359c75603
commit
922575fcda
1 changed files with 11 additions and 0 deletions
|
@ -1,9 +1,13 @@
|
|||
import logging
|
||||
|
||||
import core.input
|
||||
import core.decorators
|
||||
|
||||
import util.store
|
||||
import util.format
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Widget(util.store.Store, core.input.Object):
|
||||
def __init__(self, full_text="", name=None):
|
||||
|
@ -27,6 +31,13 @@ class Widget(util.store.Store, core.input.Object):
|
|||
custom_ids = util.format.aslist(module.parameter("id"))
|
||||
if len(custom_ids) > self.index():
|
||||
self.id = custom_ids[self.index()]
|
||||
if util.format.asbool(module.parameter("scrolling", False)) == True:
|
||||
if callable(self.__full_text):
|
||||
self.__full_text = core.decorators.scrollable(
|
||||
self.__full_text.__func__
|
||||
).__get__(module)
|
||||
else:
|
||||
log.warning("unable to make scrollable: {}".format(module.name))
|
||||
|
||||
def index(self):
|
||||
if not self.module:
|
||||
|
|
Loading…
Reference in a new issue