def onImagesLoaded(self, imagesHandles): self.clock = imagesHandles[0] el = self.clock.getElement() self.width = DOM.getIntAttribute(el, "width") self.height = DOM.getIntAttribute(el, "height") self.setWidth("%d" % self.width) self.setHeight("%d" % self.height)
def moveControl(self, mouse_x, mouse_y, first_move=False): handle_height = DOM.getIntAttribute(self.handle, "offsetHeight") widget_height = self.getOffsetHeight() height_range = widget_height - 10 # handle height is hard-coded relative_y = mouse_y - (handle_height / 2) if relative_y < 0: relative_y = 0 if relative_y >= height_range: relative_y = height_range # turn round (bottom to top) for x relative_y = height_range - relative_y handle_width = DOM.getIntAttribute(self.handle, "offsetWidth") widget_width = self.getOffsetWidth() length_range = widget_width - 10 # handle width is hard-coded relative_x = mouse_x - (handle_width / 2) if relative_x < 0: relative_x = 0 if relative_x >= length_range: relative_x = length_range val_diff_x = self.max_value_x - self.min_value_x new_value_x = ((val_diff_x * relative_x) / length_range) + \ self.min_value_x val_diff_y = self.max_value_y - self.min_value_y new_value_y = ((val_diff_y * relative_y) / height_range) + \ self.min_value_y new_value = [new_value_x, new_value_y] new_value = self.processValue(new_value) self.setControlPos(new_value) self.setValue(new_value)
def getIntProp(obj, propertyName): """ Reads an object's property as an integer value. @param object The object @param propertyName The name of the property being read @return The value """ DOM.getIntAttribute(obj, propertyName)
def isIn(element, x, y): """ Given an element and an absolute x and y, return True if the (x,y) coordinate is within the element. Otherwise, return False. """ top = DOM.getAbsoluteTop(element) height = DOM.getIntAttribute(element, 'offsetHeight') if y >= top and y <= top + height: left = DOM.getAbsoluteLeft(element) width = DOM.getIntAttribute(element, 'offsetWidth') if x >= left and x <= left + width: return True return False
def getTreeTop(self): item = self ret = 0 while item is not None: ret += DOM.getIntAttribute(item.getElement(), "offsetTop") item = item.getParentItem() return ret
def moveFocus(self, selection): focusableWidget = selection.getFocusableWidget() if focusableWidget is not None: focusableWidget.setFocus(True) DOM.scrollIntoView(focusableWidget.getElement()) else: selectedElem = selection.getContentElem() containerLeft = self.getAbsoluteLeft() containerTop = self.getAbsoluteTop() left = DOM.getAbsoluteLeft(selectedElem) - containerLeft top = DOM.getAbsoluteTop(selectedElem) - containerTop width = DOM.getIntAttribute(selectedElem, "offsetWidth") height = DOM.getIntAttribute(selectedElem, "offsetHeight") DOM.setIntStyleAttribute(self.focusable, "left", "%spx" % left) DOM.setIntStyleAttribute(self.focusable, "top", "%spx" % top) DOM.setIntStyleAttribute(self.focusable, "width", "%spx" % width) DOM.setIntStyleAttribute(self.focusable, "height", "%spx" % height) DOM.scrollIntoView(self.focusable) Focus.focus(self.focusable)
def moveFocus(self, selection): focusableWidget = selection.getFocusableWidget() if focusableWidget is not None: focusableWidget.setFocus(True) DOM.scrollIntoView(focusableWidget.getElement()) else: selectedElem = selection.getContentElem() containerLeft = self.getAbsoluteLeft() containerTop = self.getAbsoluteTop() left = DOM.getAbsoluteLeft(selectedElem) - containerLeft top = DOM.getAbsoluteTop(selectedElem) - containerTop width = DOM.getIntAttribute(selectedElem, "offsetWidth") height = DOM.getIntAttribute(selectedElem, "offsetHeight") DOM.setIntStyleAttribute(self.focusable, "left", left) DOM.setIntStyleAttribute(self.focusable, "top", top) DOM.setIntStyleAttribute(self.focusable, "width", width) DOM.setIntStyleAttribute(self.focusable, "height", height) DOM.scrollIntoView(self.focusable) Focus.focus(self.focusable)
def drawImage(self, img, *args): if isinstance(img, Widget): img_width = img.getWidth() img_height = img.getHeight() else: img_width = DOM.getIntAttribute(img, "offsetWidth") img_height = DOM.getIntAttribute(img, "offsetHeight") if len(args) == 8: self.impl.drawImage(img, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]) elif len(args) == 4: sourceX = 0 sourceY = 0 sourceWidth = img_width sourceHeight = img_height destX = args[0] destY = args[1] destWidth = args[2] destHeight = args[3] self.impl.drawImage(img, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight) elif len(args) == 2: self.impl.drawImage(img, args[0], args[1])
def drawImage(self, img, *args): if isinstance(img, Widget): img_width = img.getWidth() img_height = img.getHeight() else: img_width = DOM.getIntAttribute(img, "offsetWidth") img_height = DOM.getIntAttribute(img, "offsetHeight") if len(args) == 8: self.impl.drawImage(img, *args) elif len(args) == 4: sourceX = 0 sourceY = 0 sourceWidth = img_width sourceHeight = img_height destX = args[0] destY = args[1] destWidth = args[2] destHeight = args[3] self.impl.drawImage(img, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight) elif len(args) == 2: self.impl.drawImage(img, *args)
def moveControl(self, mouse_x, mouse_y, first_move=False): handle_width = DOM.getIntAttribute(self.handle, "offsetWidth") widget_width = self.getOffsetWidth() length_range = widget_width - 10 # handle width is hard-coded relative_x = mouse_x - (handle_width / 2) if relative_x < 0: relative_x = 0 if relative_x >= length_range: relative_x = length_range val_diff = self.max_value - self.min_value new_value = ((val_diff * relative_x) / length_range) + self.min_value new_value = self.processValue(new_value) self.setControlPos(new_value) self.setValue(new_value)
def moveControl(self, mouse_x, mouse_y, first_move=False): handle_height = DOM.getIntAttribute(self.handle, "offsetHeight") widget_height = self.getOffsetHeight() height_range = widget_height - 10 # handle height is hard-coded relative_y = mouse_y - (handle_height / 2) if relative_y < 0: relative_y = 0 if relative_y >= height_range: relative_y = height_range relative_y = height_range - relative_y # turn round (bottom to top) val_diff = self.max_value - self.min_value new_value = ((val_diff * relative_y) / height_range) + self.min_value new_value = self.processValue(new_value) self.setControlPos(new_value) self.setValue(new_value)
def getVisibleLines(self): return DOM.getIntAttribute(self.getElement(), "rows")
def getOffsetWidth(self): return DOM.getIntAttribute(self.element, "offsetWidth")
def getPopupTop(self): return DOM.getIntAttribute(self.getElement(), "offsetTop")
def getMaxLength(self): return DOM.getIntAttribute(self.getElement(), "maxLength")
def getWidgetTop(self, widget): self.checkWidgetParent(widget) return DOM.getIntAttribute(widget.getElement(), "offsetTop")
def getClientHeight(self): return DOM.getIntAttribute(self.getElement(), "clientHeight")
def getClientWidth(self): return DOM.getIntAttribute(self.getElement(), "clientWidth")
def getRowSpan(self, row, column): return DOM.getIntAttribute(self.getElement(row, column), "rowSpan")
def getScrollPosition(self): return DOM.getIntAttribute(self.getElement(), "scrollTop")
def getHorizontalScrollPosition(self): return DOM.getIntAttribute(self.getElement(), "scrollLeft")
def getSelectedIndex(self): """ returns the selected item's index on a single-select listbox. returns -1 if no item is selected. for multi-select, use repeated calls to isItemSelected. """ return DOM.getIntAttribute(self.getElement(), "selectedIndex")
def getVisibleItemCount(self): return DOM.getIntAttribute(self.getElement(), "size")
def getOffsetWidth(self, elem): """ Returns the offsetWidth element property. """ return DOM.getIntAttribute(elem, "offsetWidth")
def onLoad(self, sender=None): el = self.clock.getElement() self.width = DOM.getIntAttribute(el, "width") self.height = DOM.getIntAttribute(el, "height") self.setWidth("%dpx" % self.width) self.setHeight("%dpx" % self.height)
def getVisibleLength(self): return DOM.getIntAttribute(self.getElement(), "size")
def getOffsetHeight(self): return DOM.getIntAttribute(self.element, "offsetHeight")
def getPopupLeft(self): return DOM.getIntAttribute(self.getElement(), "offsetLeft")
def getIntProp(obj, propertyName): DOM.getIntAttribute(obj, propertyName)
def getCharacterWidth(self): return DOM.getIntAttribute(self.getElement(), "cols")
def getContentHeight(self): return DOM.getIntAttribute(self.itemTable, "offsetHeight")
def getCellPadding(self): return DOM.getIntAttribute(self.tableElem, "cellPadding")
def getOffsetHeight(self, elem): """ Returns the offsetHeight element property. """ return DOM.getIntAttribute(elem, "offsetHeight")