| 221 | |
| 222 | |
| 223 | class ResizeHelper(gui.Widget, DraggableItem): |
| 224 | |
| 225 | def __init__(self, app_instance, **kwargs): |
| 226 | super(ResizeHelper, self).__init__(**kwargs) |
| 227 | DraggableItem.__init__(self, app_instance, **kwargs) |
| 228 | self.style['float'] = 'none' |
| 229 | self.style['background-image'] = "url('/editor_resources:resize.png')" |
| 230 | self.style['background-color'] = "rgba(255,255,255,0.0)" |
| 231 | self.style['position'] = 'absolute' |
| 232 | self.style['left'] = '0px' |
| 233 | self.style['top'] = '0px' |
| 234 | self.onmousedown.do(self.start_drag) |
| 235 | |
| 236 | def setup(self, refWidget, newParent): |
| 237 | self.style['display'] = 'none' |
| 238 | if issubclass(newParent.__class__, gui.TabBox): |
| 239 | return |
| 240 | if issubclass(refWidget.__class__, gui.Widget) and 'left' in refWidget.style and 'top' in refWidget.style and \ |
| 241 | 'width' in refWidget.style and 'height' in refWidget.style and refWidget.css_position=='absolute': |
| 242 | DraggableItem.setup(self, refWidget, newParent) |
| 243 | self.style['display'] = 'block' |
| 244 | |
| 245 | def on_drag(self, emitter, x, y): |
| 246 | if self.active: |
| 247 | if self.origin_x == -1: |
| 248 | self.origin_x = float(x) |
| 249 | self.origin_y = float(y) |
| 250 | self.refWidget_origin_w = gui.from_pix( |
| 251 | self.refWidget.style['width']) |
| 252 | self.refWidget_origin_h = gui.from_pix( |
| 253 | self.refWidget.style['height']) |
| 254 | else: |
| 255 | self.refWidget.style['width'] = gui.to_pix(self.round_grid( |
| 256 | self.refWidget_origin_w + float(x) - self.origin_x)) |
| 257 | self.refWidget.style['height'] = gui.to_pix(self.round_grid( |
| 258 | self.refWidget_origin_h + float(y) - self.origin_y)) |
| 259 | self.update_position() |
| 260 | |
| 261 | def update_position(self): |
| 262 | self.style['position'] = 'absolute' |
| 263 | if self.refWidget: |
| 264 | if 'left' in self.refWidget.style and 'top' in self.refWidget.style: |
| 265 | self.style['left'] = gui.to_pix(gui.from_pix( |
| 266 | self.refWidget.style['left']) + gui.from_pix(self.refWidget.style['width'])) |
| 267 | self.style['top'] = gui.to_pix(gui.from_pix( |
| 268 | self.refWidget.style['top']) + gui.from_pix(self.refWidget.style['height'])) |
| 269 | |
| 270 | |
| 271 | class DragHelper(gui.Widget, DraggableItem): |