doc: added ref and anchor example

This commit is contained in:
Zen-CODE 2014-06-15 23:13:48 +02:00
parent 01d80053e5
commit fd2ab6e313
1 changed files with 47 additions and 0 deletions

View File

@ -96,6 +96,53 @@ For prettier rendering, you could add a color for the reference. Replace the
'Hello [ref=world][color=0000ff]World[/color][/ref]' 'Hello [ref=world][color=0000ff]World[/color][/ref]'
Usage example
-------------
The following example marks the anchors and references contained in a label::
from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.graphics import Color, Rectangle
class TestApp(App):
@staticmethod
def get_x(label, ref_x):
""" Return the x value of the ref/anchor relative to the canvas """
return label.center_x - label.texture_size[0] * 0.5 + ref_x
@staticmethod
def get_y(label, ref_y):
""" Return the y value of the ref/anchor relative to the canvas """
# Note the inversion of direction, as y values start at the top of
# the texture and increase downwards
return label.center_y + label.texture_size[1] * 0.5 - ref_y
def show_marks(self, label):
# Indicate the position of the anchors with a red top marker
for name, anc in label.anchors.items():
with label.canvas:
Color(1, 0, 0)
Rectangle(pos=(self.get_x(label, anc[0]),
self.get_y(label, anc[1])),
size=(3, 3))
# Draw a green surround around the refs. Note the sizes y inversion
for name, boxes in label.refs.items():
for box in boxes:
with label.canvas:
Color(0, 1, 0, 0.25)
Rectangle(pos=(self.get_x(label, box[0]),
self.get_y(label, box[1])),
size=(box[2] - box[0],
box[1] - box[3]))
TestApp().run()
''' '''
__all__ = ('Label', ) __all__ = ('Label', )