bugfix
This commit is contained in:
parent
a5b699e92d
commit
973edd5af2
41
kivyblocks/doubleface.py
Normal file
41
kivyblocks/doubleface.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
from kivy.uix.boxlayout import BoxLayout
|
||||||
|
from kivy.factory import Factory
|
||||||
|
|
||||||
|
class DoubleFace(BoxLayout):
|
||||||
|
def __init__(self,landscape={},portrait={},**kw):
|
||||||
|
BoxLayout.__init__(self,**kw)
|
||||||
|
self.landscape_built = False
|
||||||
|
self.portrait_built = False
|
||||||
|
self.landscape_widget = None
|
||||||
|
self.portrait_widget = None
|
||||||
|
blocks = Factory.Blocks()
|
||||||
|
blocks.bind(on_built=self.landscape_built)
|
||||||
|
blocks.widgetBuilt(landscape,ancestor=self)
|
||||||
|
blocks = Factory.Blocks()
|
||||||
|
blocks.bind(on_built=self.portrait_built)
|
||||||
|
blocks.widgetBuild(portrait,ancestor=self)
|
||||||
|
self.on_size_task = None
|
||||||
|
|
||||||
|
def landscape_built(self,o,w):
|
||||||
|
self.landscape_widget = w
|
||||||
|
self.landscape_built = True
|
||||||
|
|
||||||
|
def partrait_built(self,o,w):
|
||||||
|
self.portrait_widget = w
|
||||||
|
self.portrait_built = True
|
||||||
|
|
||||||
|
def on_size(self,*args):
|
||||||
|
if not self.landscape_built or not self.portrait_built:
|
||||||
|
if not self.on_size_task is None:
|
||||||
|
self.on_size_task.cancel()
|
||||||
|
self.on_size_task.schedule_once(self.on_size,0.2)
|
||||||
|
return
|
||||||
|
if self.width >= self.height:
|
||||||
|
if not self.landscape_widget in self.children:
|
||||||
|
self.clear_widget()
|
||||||
|
self.add_widget(self.landscape_widget)
|
||||||
|
else:
|
||||||
|
if not self.portrait_widget in self.children:
|
||||||
|
self.clear_widget()
|
||||||
|
self.add_widget(self.portrait_widget)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user