diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2014-06-24 20:05:13 +0100 |
---|---|---|
committer | Dimitri John Ledkov <xnox@ubuntu.com> | 2014-06-24 20:05:13 +0100 |
commit | dd22bd15f6ed3e5eb5c77ab427029be50fe20148 (patch) | |
tree | d9491ee40d80688b7f5b1f20504f022686827a57 /src/samples/widget.py |
libavg (1.8.1-1) unstable; urgency=medium
* New upstream release (Closes: #739664)
* Mark libdc1394-22-dev as linux-any build-dependency.
* Add libvdpau-dev build-dependency.
* Add libavresample-dev build-dependency.
# imported from the archive
Diffstat (limited to 'src/samples/widget.py')
-rwxr-xr-x | src/samples/widget.py | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/samples/widget.py b/src/samples/widget.py new file mode 100755 index 0000000..0396299 --- /dev/null +++ b/src/samples/widget.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from libavg import avg, app, widget + +class SimpleUI(app.MainDiv): + def onInit(self): + avg.RectNode(size=(1024,768), fillopacity=1, fillcolor="FFFFFF", + parent=self) + + hScrollBar = widget.ScrollBar(pos=(10,10), width=150, parent=self) + self.__addValueDisplay(hScrollBar, (175,12)) + + vScrollBar = widget.ScrollBar(pos=(15,60), height=150, + orientation=widget.Orientation.VERTICAL, parent=self) + vScrollBar.thumbExtent = 5 + vScrollBar.range = (10,0) + self.__addValueDisplay(vScrollBar, (10,220)) + + hSlider = widget.Slider(pos=(10,35), width=150, parent=self) + self.__addValueDisplay(hSlider, (175,33)) + + vSlider = widget.Slider(pos=(60.5,60), height=150, + orientation=widget.Orientation.VERTICAL, parent=self) + vSlider.range = (1,0) + self.__addValueDisplay(vSlider, (55,220)) + self.controls = [hScrollBar, vScrollBar, hSlider, vSlider] + + self.createScrollArea(avg.Point2D(220,10)) + + checkBox = widget.CheckBox(pos=(10,270), text="Disable everything", + parent=self) + checkBox.subscribe(widget.CheckBox.TOGGLED, self.onCheck) + + def setText(self, pos, node): + node.text = "%.2f"%pos + + def setImageWidth(self, scrollArea, thumbPos): + scrollArea.contentsize = (thumbPos, scrollArea.contentsize.y) + + def setImageHeight(self, scrollArea, thumbPos): + scrollArea.contentsize = (scrollArea.contentsize.x, thumbPos) + + def createScrollArea(self, pos): + image = avg.ImageNode(href="rgb24-64x64.png", size=(1024, 1024)) + scrollArea = widget.ScrollArea(contentNode=image, parent=self, + pos=pos, size=(220,220)) + + imageWidthSlider = widget.Slider(pos=pos+(0,230), width=220, + parent=self) + imageWidthSlider.range = (100,1024) + imageWidthSlider.thumbPos = 1024 + imageWidthSlider.subscribe(widget.ScrollBar.THUMB_POS_CHANGED, + lambda thumbPos, scrollArea=scrollArea: + self.setImageWidth(scrollArea, thumbPos)) + + imageHeightSlider = widget.Slider(pos=pos+(230,0), height=220, + orientation=widget.Orientation.VERTICAL, parent=self) + imageHeightSlider.range = (100,1024) + imageHeightSlider.thumbPos = 1024 + imageHeightSlider.subscribe(widget.ScrollBar.THUMB_POS_CHANGED, + lambda thumbPos, scrollArea=scrollArea: + self.setImageHeight(scrollArea, thumbPos)) + self.controls.extend([scrollArea, imageWidthSlider, imageHeightSlider]) + + def onCheck(self, isChecked): + for node in self.controls: + node.enabled = not(isChecked) + + def __addValueDisplay(self, scrollBar, pos): + textNode = avg.WordsNode(pos=pos, color="000000", parent=self) + scrollBar.subscribe(widget.ScrollBar.THUMB_POS_CHANGED, + lambda pos, node=textNode: self.setText(pos, node)) + self.setText(scrollBar.thumbPos, textNode) + + +app.App().run(SimpleUI(), app_resolution='1024x768') |