Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class SubWindow(Widget):
- tPosRel = ListProperty()
- bColor = ListProperty()
- innerColor = ListProperty()
- buttonPos = ListProperty()
- innerPos = ListProperty()
- innerSize = ListProperty()
- def __init__(self, **kwargs):
- self.innerPos = (self.pos[0] + 5, self.pos[1] + 40)
- self.innerSize = (90, 265)
- self.innerColor = (.2, .2, .2, 1)
- self.bColor = (0, 0, 0, 1)
- brightnessAvg = (self.bColor[0] + self.bColor[1] + self.bColor[2])/3.0
- if brightnessAvg > .5:
- self.innerColor = (kwargs["bColor"][0] - .2, kwargs["bColor"][1] - .2, kwargs["bColor"][2] - .2, 1)
- else:
- self.innerColor = (kwargs["bColor"][0] + .2, kwargs["bColor"][1] + .2, kwargs["bColor"][2] + .2, 1)
- #print(self.innerColor)
- self.buttonPos = (self.size[0] - 30, self.size[1] - 30)
- #print(self.pos)
- super().__init__(**kwargs)
- self.innerPos = (self.pos[0] + 5, self.pos[1] + 5)
- #print(self.pos)
- #print(self.bColor)
- #print(self.size)
- self.buttonPos = (self.pos[0] + self.size[0] - 25, self.pos[1] + self.size[1] - 25)
- def on_pos(self, *args):
- self.innerPos = (self.pos[0] + 5, self.pos[1] + 5)
- self.buttonPos = (self.pos[0] + self.size[0] - 25, self.pos[1] + self.size[1] - 25)
- if self.ready:
- for x in self.ids["content"].children:
- x.pos = self.ids["content"].pos
- #print(self.innerColor)
- def on_size(self, *args):
- self.innerSize = (self.size[0] - 10, self.size[1] - 45)
- self.buttonPos = (self.pos[0] + self.size[0] - 25, self.pos[1] + self.size[1] - 25)
- def on_touch_down(self, touch):
- if not self.collide_point(*touch.pos):
- return super(SubWindow, self).on_touch_down(touch)
- # print(self.size)
- # print("Mouse X: " + str(touch.x))
- # print("Mouse Y: " + str(touch.y))
- if touch.x > self.pos[0] and touch.x < self.pos[0] + self.size[0] - 30 and touch.y > self.pos[1] + self.size[
- 1] - 5 and touch.y < self.pos[1] + self.size[1] + 5:
- self.side = 'up'
- print("up hit detect...")
- self.yInit = self.pos[1]
- self.hInit = self.size[1]
- # self.tPosRel = touch - self.pos
- touch.grab(self)
- return True
- if touch.x > self.pos[0] + self.size[0] - 5 and touch.x < self.pos[0] + self.size[0] + 5 and touch.y > self.pos[
- 1] + 5 and touch.y < self.pos[1] + self.size[1] - 21:
- self.side = 'right'
- print("right hit detect...")
- self.xInit = self.pos[0]
- self.wInit = self.size[0]
- touch.grab(self)
- return True
- if touch.x > self.pos[0] + 5 and touch.x < self.pos[0] + self.size[0] - 5 and touch.y > self.pos[
- 1] - 5 and touch.y < self.pos[1] + 5:
- self.side = 'down'
- print("down hit detect...")
- self.yInit = self.pos[1]
- self.hInit = self.size[1]
- touch.grab(self)
- return True
- if touch.x > self.pos[0] - 5 and touch.x < self.pos[0] + 5 and touch.y > self.pos[1] + 5 and touch.y < self.pos[
- 1] + self.size[1]:
- self.side = 'left'
- print("left hit detect...")
- #print(self.size)
- self.xInit = self.pos[0]
- self.wInit = self.size[0]
- touch.grab(self)
- return True
- if touch.x > self.pos[0] and touch.x < self.pos[0] + self.size[0] - 30 and touch.y > self.pos[1] + self.size[
- 1] - 22 and touch.y < self.pos[1] + self.size[1] - 5:
- print("top hit detect...")
- self.side = 'window'
- self.tPosRel = (touch.x - self.pos[0], touch.y - self.pos[1])
- touch.grab(self)
- return True
- if touch.x > self.pos[0] - 5 and touch.x < self.pos[0] + 5 and touch.y > self.pos[1] - 5 and touch.y < self.pos[
- 1] + 5:
- self.side = 'leftcorner'
- print("left hit detect...")
- #print(self.size)
- self.xInit = self.pos[0]
- self.wInit = self.size[0]
- self.yInit = self.pos[1]
- self.hInit = self.size[1]
- touch.grab(self)
- return True
- if touch.x > self.pos[0] + self.size[0] - 5 and touch.x < self.pos[0] + self.size[0] + 5 and touch.y > self.pos[
- 1] - 5 and touch.y < self.pos[1] + 5:
- self.side = 'rightcorner'
- print("right hit detect...")
- #print(self.size)
- self.xInit = self.pos[0]
- self.wInit = self.size[0]
- self.yInit = self.pos[1]
- self.hInit = self.size[1]
- touch.grab(self)
- return True
- return super(SubWindow, self).on_touch_down(touch)
- <SubWindow>:
- size_hint: (None, None)
- FloatLayout:
- size: root.size
- pos: root.pos
- size_hint: (None, None)
- canvas:
- Color:
- rgba: root.bColor
- Rectangle:
- size: root.size
- pos: root.pos
- Button:
- size: 20, 20
- pos: root.buttonPos
- size_hint: (None, None)
- text: "X"
- on_release: root.close(root)
- FloatLayout:
- pos: root.innerPos
- size: root.innerSize
- size_hint:(None, None)
- id: content
- canvas:
- Color:
- rgba: root.innerColor
- Rectangle:
- pos: content.pos
- size: root.innerSize
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement