def __init__(self, element, **kwargs): self.changeListeners = [] self.inputListeners = [] self.currentEvent = None FocusWidget.__init__(self, element, **kwargs) self.sinkEvents(Event.ONCHANGE | Event.ONINPUT)
def __init__(self, **kwargs): if not kwargs.has_key('StyleName'): kwargs['StyleName']="gwt-ListBox" self.changeListeners = [] self.INSERT_AT_END = -1 element = kwargs.pop('Element', None) or DOM.createSelect() FocusWidget.__init__(self, element, **kwargs) self.sinkEvents(Event.ONCHANGE)
def __init__(self, element, min_value, max_value, start_value_xy=None, step_xy=None, **kwargs): self.min_value_x = min_value[0] self.min_value_y = min_value[1] self.max_value_x = max_value[0] self.max_value_y = max_value[1] if start_value_xy is None: self.start_value_x = self.min_value_x self.start_value_y = self.min_value_y else: self.start_value_x = start_value_xy[0] self.start_value_y = start_value_xy[1] if step_xy is None: self.step_x = (self.max_value_x - self.min_value_x) / 20 self.step_y = (self.max_value_y - self.min_value_y) / 20 else: self.step_x = step_xy[0] self.step_y = step_xy[1] self.value_x = self.start_value_x self.value_y = self.start_value_y self.valuechange_listeners = [] self.dragging = False self.drag_enabled = False if not kwargs.has_key("TabIndex"): kwargs['TabIndex'] = 0 FocusWidget.__init__(self, element, **kwargs) MouseHandler.__init__(self)
def onAttach(self): FocusWidget.onAttach(self) JS( ''' var map = this._map; var onResize = function() { map.invalidateSize(); } onResize(); $wnd.$(this.getElement()).resize(onResize); ''');
def onBrowserEvent(self, event): if DOM.eventGetType(event) == "change": for listener in self.changeListeners: if hasattr(listener, 'onChange'): listener.onChange(self) else: listener(self) else: FocusWidget.onBrowserEvent(self, event)
def __init__(self,i,j): self.i = i self.j = j self.light = True element = DOM.createDiv() #DOM.setInnerHTML(element,'<b>%i%i</b>' % (i,j)) FocusWidget.__init__(self, element) self.redraw() self.addClickListener(self)
def setPixelHeight(self, height): """ Sets the CSS height of the canvas in pixels. @param height the height of the canvas in pixels """ height = int(height) self.pixelHeight = height FocusWidget.setHeight(self, height) DOM.setElemAttribute(self.canvas, "height", str(height)) self._set_base_transform()
def setPixelWidth(self, width): """ Sets the CSS width in pixels for the canvas. @param width width of the canvas in pixels """ width = int(width) self.pixelWidth = width FocusWidget.setWidth(self, width) DOM.setElemAttribute(self.canvas, "width", str(width)) self._set_base_transform()
def onBrowserEvent(self, event): FocusWidget.onBrowserEvent(self, event) type = DOM.eventGetType(event) if type == "change": for listener in self.changeListeners: if hasattr(listener, 'onChange'): listener.onChange(self) else: listener(self) if type == "input": for listener in self.inputListeners: if hasattr(listener, 'onInput'): listener.onInput(self) else: listener(self)
def __init__(self, options=None, *args, **kwargs): element = DOM.createDiv() if not 'StyleName' in kwargs: kwargs['StyleName'] = 'leaflet-Map' FocusWidget.__init__(self, element, *args, **kwargs) map_element = DOM.createDiv() DOM.setStyleAttribute(map_element, 'width', '100%') DOM.setStyleAttribute(map_element, 'height', '100%') DOM.appendChild(element, map_element) JS('this._map = new $wnd.L.Map(map_element, pyjslib.toJSObjects(options));') self._layers = []
def __init__(self, coordX=None, coordY=None, pixelX=None, pixelY=None, **kwargs): """ Creates an SVGCanvas element. Element type is 'svg' @param coordX the size of the coordinate space in the x direction @param coordY the size of the coordinate space in the y direction @param pixelX the CSS width in pixels of the canvas element @param pixelY the CSS height in pixels of the canvas element """ # init default coordinates/size self.pixelHeight = 150 self.pixelWidth = 300 self.coordHeight = self.pixelHeight self.coordWidth = self.pixelWidth focusable = Focus.createFocusable() self.canvas = self._createElementSVG("svg") # create an empty defs element self.defs = self._createElementSVG("defs") # and add it to the canvas DOM.appendChild(self.canvas, self.defs) # now add canvas to container DOM.appendChild(focusable, self.canvas) # init base widget (invokes settables) FocusWidget.__init__(self, focusable, **kwargs) # since the Applier class provides settable access, # we only override the dimensions if user actually # provided them as keyword args if pixelX is not None: self.setPixelWidth(pixelX) if pixelY is not None: self.setPixelHeight(pixelY) if coordX is not None: self.setCoordWidth(coordX) if coordY is not None: self.setCoordHeight(coordY) # init styles context stack self.ctx_stack = [] # init current context self._init_context() # insure we clear/init the canvas self.clear()
def __init__(self, Width=0, Height=0, **kwargs): if not kwargs.has_key('StyleName'): kwargs['StyleName'] = 'gwt-Canvas' kwargs['Width'] = Width kwargs['Height'] = Height self.context = None focusable = Focus.createFocusable() self.canvas = DOM.createElement("canvas") DOM.appendChild(focusable, self.canvas) FocusWidget.__init__(self, focusable, **kwargs) self.init() self.context.fillStyle = "black" self.context.strokeStyle = "black"
def __init__(self, coordX=300, coordY=150, pixelX=300, pixelY=150, **kwargs): """ * Impl Instance. Compiler should statify all the methods, so we * do not end up with duplicate code for each canvas instance. """ self.impl = self.getCanvasImpl() self.coordHeight = 0 self.coordWidth = 0 focusable = Focus.createFocusable() self.canvas = self.impl.createElement() DOM.appendChild(focusable, self.canvas) FocusWidget.__init__(self, focusable, **kwargs) self.setPixelWidth(pixelX) self.setPixelHeight(pixelY) self.setCoordSize(coordX, coordY)
def __init__(self, className=None): element = DOM.createIFrame() FocusWidget.__init__(self,element) self.floorplan_file = "floorplan.svg" #DOM.setStyleAttribute(element, "position", "relative") #DOM.setStyleAttribute(element, "overflow", "hidden") #DOM.setStyleAttribute(element, "border", "1px") #DOM.setStyleAttribute(element, "width", "100px") #DOM.setStyleAttribute(element, "height", "100px") #DOM.setStyleAttribute(element, "backgroundColor", "lightblue") self.svg_area = element self.rot_deg = 0.0 self.scale = 1.0 self.x_translate = 0.0 self.y_translate = 0.0 self.draw_elements() self.svg_area.setAttribute("class", className)
def __init__(self, element, min_value, max_value, start_value=None, step=None, **kwargs): self.min_value = min_value self.max_value = max_value if start_value is None: start_value = min_value if step is None: step = (self.max_value - self.min_value) / 20 self.step = step self.value = start_value self.valuechange_listeners = [] self.dragging = False self.drag_enabled = False kwargs['TabIndex'] = kwargs.get("TabIndex", 0) FocusWidget.__init__(self, element, **kwargs) MouseHandler.__init__(self) MouseWheelHandler.__init__(self, True) self.addMouseWheelListener(self)
def onAttach(self): FocusWidget.onAttach(self) self.impl.initElement()
def onDetach(self): FocusWidget.onDetach(self) self.impl.uninitElement()
def setPixelWidth(self, width): FocusWidget.setWidth(self, str(width) + "px") self.impl.setPixelWidth(self.getCanvasElement(), width)
def _getProps(self): return FocusWidget._getProps() + self._props
def setHeight(self, height): FocusWidget.setHeight(self, height) self.canvas.height = height
def __init__(self, element, **kwargs): self.currentEvent = None FocusWidget.__init__(self, element, **kwargs) ChangeHandler.__init__(self) InputHandler.__init__(self)
class ContainerUCA(VerticalPanel): def __init__(self, ws): VerticalPanel.__init__(self, Width='100%', Height='100%') self.codeTextArea = Element(Element=DOM.createDiv(), StyleName='codePanel') self.codeTextArea.setID('clip_text') #self.codeTextArea.setReadonly(True) #self.codeTextArea.addClickListener(listener=lambda:self.codeTextArea.selectAll()) ws.setCodePanel(self.codeTextArea) self.header = Header(self.changeLanguage) getWorkspace().setHeaderPanel(self.header) self.blockList = BlockList() self.hardwareList = HardwareList() self.hardwareList.addStyleName('invisible') self.left = Element(Element=DOM.createDiv(), Width='100%', Height='100%') ws.setBlockList(self.blockList) ws.setHardwaresList(self.hardwareList) self.serialMonitor = Element(Element=DOM.createDiv(), StyleName='serialMonitor') self.blocksPad = BlocksPad() self.hardwaresPad = HardwaresPad() self.hardwaresPad.addStyleName('invisible') self.middle = Element(Element=DOM.createDiv(), Width='100%', Height='100%') ws.setBlocksPad(self.blocksPad) ws.setHardwaresPad(self.hardwaresPad) def onLoad(self): self.add(self.header) self.setCellHeight(self.header, '38px') self.left.add(self.blockList) self.left.add(self.hardwareList) self.mainPanel = HorizontalPanel(Width='100%', Height='100%') self.mainPanel.add(self.left) self.mainPanel.setCellWidth(self.left, '250') self.middle.add(self.blocksPad) self.middle.add(self.hardwaresPad) self.center = VerticalPanel(Width='100%', Height='100%', StyleName="center_panel") self.center.add(self.middle) #--------------------------------------------------------------------------------------------------------- bottom = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') self.showHideLeft = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar close_left') self.showHideLeft.addClickListener(self.showHidePanelLeft) self.showHideLeft.setStyleAttribute('float', 'lef') bottom.add(self.showHideLeft) self.showHideRight = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar') self.showHideRight.addClickListener(self.showHidePanelRight) bottom.add(self.showHideRight) self.showHideMonitor = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar') self.showHideMonitor.addClickListener(self.showHidePanelMonitor) bottom.add(self.showHideMonitor) self.resizeMonitor = ResizeWidget(self.serialMonitor, 100, 400, invert=True, horizontal=False) DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "none") bottom.add(self.resizeMonitor) self.center.add(bottom) self.center.setCellHeight(bottom, '20px') usbFlash = FocusWidget(Element=DOM.createDiv()) usbFlash.setID('cb_cf') DOM.setElemAttribute(usbFlash.getElement(), 'data-sections', 'usbflash serialmonitor') self.serialMonitor.add(usbFlash) progress = Element(Element=DOM.createDiv(), StyleName='progress progress-striped active') progress.setID('progress') DOM.setStyleAttribute(progress.getElement(), "display", "none") progress_val = Element(Element=DOM.createDiv(), StyleName='bar') progress_val.setID('progress_val') progress.add(progress_val) self.serialMonitor.add(progress) monitor = Element(Element=DOM.createDiv()) monitor.setID('monitor') self.serialMonitor.add(monitor) self.center.add(self.serialMonitor) self.center.setCellHeight(self.serialMonitor, '100') self.showHidePanelMonitor() #--------------------------------------------------------------------------------------------------------- self.mainPanel.add(self.center) #--------------------------------------------------------------------------------------------------------- self.cod = VerticalPanel(Width='100%', Height='100%', StyleName="right_panel") divCode = Element(Element=DOM.createDiv(), Width='100%', Height='100%', StyleName="download-button-container") divCode.add(self.codeTextArea) divButtonDownload = FocusWidget(Element=DOM.createDiv(), StyleName="download-button") #divButtonDownload.addClickListener(listener=lambda:exportWiringCode(self.codeTextArea.getText())) divButtonDownload.addClickListener(listener=lambda: exportWiringCode()) DOM.setInnerText(divButtonDownload.getElement(), 'download') divCode.add(divButtonDownload) self.cod.add(divCode) bot = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') res = ResizeWidget(self.cod, 100, 500, invert=True) res.setStyleAttribute('float', 'left') bot.append(res) self.cod.add(bot) self.cod.setCellHeight(bot, '20px') self.mainPanel.add(self.cod) self.mainPanel.setCellWidth(self.cod, '200') self.showHidePanelRight() self.header.buttonBlocks.addClickListener(self.showBlocksList) self.header.buttonHarwares.addClickListener(self.showHardwaresList) self.header.buttonTranslate.addClickListener(self.showPanelRight) #self.header.buttonReload.addClickListener(self.hidePanelRight) #--------------------------------------------------------------------------------------------------------- self.add(self.mainPanel) stateChange() self.changeLanguage('pt_BR') #https://groups.google.com/forum/?fromgroups=#!topic/pyjamas-dev/a-u8hWZ6W0o #JS('''setOperationProgress(50);''') #JS('''$("#operation_output").html("Working...");''') #------------------------------------------------------------------------------------------------------------- #dynamic.ajax_import("jquery.min.js") #dynamic.ajax_import("lawnchair-0.6.1.min.js") #dynamic.ajax_import("BrowserDetect.js") #dynamic.ajax_import("compilerflasher.js", names = ['initializePlugin']) #JS("""@{{!initializePlugin}}();""") #dynamic.ajax_import("src-noconflict/ace.js", names = ['addPluginAce']) #JS("""@{{!addPluginAce}}();""") #JS("""addPluginAce();""") #JS("""var editor = ace.edit("editor"); # editor.setTheme("ace/theme/textmate"); # editor.getSession().setMode("ace/mode/c_cpp"); # alert();""") def changeLanguage(self, language): i18n.load(base_url='../lang', lang=language, onCompletion=self.changeTexts) def changeTexts(self): getWorkspace().getBlockList().changeTexts() #getWorkspace().getBlocksPad().changeTexts() nao pega os subblocks! for block in getWorkspace().getBlocks(): block.changeTexts() getWorkspace().getHeaderPanel().changeTexts() getWorkspace().getHardwaresList().changeTexts() getWorkspace().getHardwaresPad().changeTexts() def showBlocksList(self): self.hardwareList.addStyleName('invisible') self.blockList.removeStyleName('invisible') self.hardwaresPad.addStyleName('invisible') self.blocksPad.removeStyleName('invisible') self.blockList.refreshComponentBlocks(self.hardwaresPad.children) def showHardwaresList(self): self.blockList.addStyleName('invisible') self.hardwareList.removeStyleName('invisible') self.blocksPad.addStyleName('invisible') self.hardwaresPad.removeStyleName('invisible') def hidePanelRight(self): if DOM.getStyleAttribute( self.mainPanel.getWidgetTd(self.cod), 'display') == '': # bug: "block" in <td> not work's on firefox DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "none") self.showHideRight.setStyleName('control_bar open_left') def showPanelRight(self): if DOM.getStyleAttribute(self.mainPanel.getWidgetTd(self.cod), 'display') == 'none': DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "") self.showHideRight.setStyleName('control_bar close_right') def showHidePanelLeft(self): if DOM.getStyleAttribute(self.mainPanel.getWidgetTd(self.left), 'display') == '': DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.left), "display", "none") self.showHideLeft.setStyleName('control_bar open_right') else: DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.left), "display", "") self.showHideLeft.setStyleName('control_bar close_left') def showHidePanelMonitor(self): if DOM.getStyleAttribute( DOM.getParent(self.center.getWidgetTd(self.serialMonitor)), 'display') == 'none': DOM.setStyleAttribute( DOM.getParent(self.center.getWidgetTd(self.serialMonitor)), "display", "") self.showHideMonitor.setStyleName('collapse open_down') #JS("""addCodeBenderPlugin();@{{!addCodeBenderPlugin}}();""") DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "") else: DOM.setStyleAttribute( DOM.getParent(self.center.getWidgetTd(self.serialMonitor)), "display", "none") self.showHideMonitor.setStyleName('collapse close_up') DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "none") def showHidePanelRight(self): if DOM.getStyleAttribute(self.mainPanel.getWidgetTd(self.cod), 'display') == 'none': DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "") self.showHideRight.setStyleName('control_bar close_right') else: DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "none") self.showHideRight.setStyleName('control_bar open_left')
def __init__(self, element, **kwargs): FocusWidget.__init__(self, element, **kwargs)
def setPixelHeight(self, height): height = int(height) self.pixelHeight = height FocusWidget.setHeight(self, height) DOM.setElemAttribute(self.canvas, "height", str(height)) self._set_base_transform()
class SubCategoryPanel(VerticalPanel): def __init__(self, subCategoryName='', subCategoryClassName='', openList=True): self.list = VerticalPanel(StyleName='block_list') self.list.setStyleAttribute("display", "block") VerticalPanel.__init__(self, StyleName='SubCategoryPanel') self.subCategoryName = subCategoryName if subCategoryName != '': self.title = Element(Element=DOM.createElement('dt'), StyleName=subCategoryClassName) DOM.setInnerHTML(self.title.getElement(), self.subCategoryName) self.collapse = FocusWidget(Element=DOM.createDiv(), StyleName='collapse close_up') self.collapse.addClickListener(self.showHide) self.title.add(self.collapse) self.add(self.title) if openList: self.list.setStyleAttribute("display", "block") self.collapse.setStyleName('collapse close_up') else: self.list.setStyleAttribute("display", "none") self.collapse.setStyleName('collapse open_down') self.add(self.list) self.blocks = [] def changeTexts(self): if self.subCategoryName != '': DOM.setInnerHTML(self.title.getElement(), _(self.subCategoryName)) self.title.add(self.collapse) for block in self.blocks: block.changeTexts() def addBlock(self, block, classHelp='help_default', beforeIndex=None): panel = HorizontalPanel() panel.add(block) info = Label('i', StyleName='info_btn') info.block = block info.classHelp = classHelp info.addClickListener(self.showInfo) panel.add(info) if beforeIndex is not None: self.list.insert(panel, self.list.getBody(), 0)#deprecated else: self.list.add(panel) self.list.setStyleName(self.list.getWidgetTd(panel), 'block_info') self.blocks.append(block) def removeBlock(self, block):#deprecated self.list.remove(block.getParent()) self.blocks.remove(block) def addWidget(self, widget): self.list.add(widget) def showInfo(self, sender): if sender.block.name in ['commandType', 'numericType', 'logicType', 'alphaNumericType']: createdBlocks[sender.block.varName].show() else: popup = Popup('<b>Ajuda</b>', None, None) popup.center.append(Widget(Element=DOM.createDiv(), StyleName=sender.classHelp)) popup.caption.setStyleAttribute('text-align', 'center') popup.show() def showHide(self): if self.list.getStyleAttribute('display') == 'none': self.list.setStyleAttribute("display", "block") self.collapse.setStyleName('collapse close_up') else: self.list.setStyleAttribute("display", "none") self.collapse.setStyleName('collapse open_down') def changeTitle(self, count):# faz perder o collapse DOM.setInnerHTML(self.title.getElement(), self.subCategoryName+': #'+str(count)) self.title.add(self.collapse)
def onLoad(self): self.add(self.header) self.setCellHeight(self.header, '38px') self.left.add(self.blockList) self.left.add(self.hardwareList) self.mainPanel = HorizontalPanel(Width='100%', Height='100%') self.mainPanel.add(self.left) self.mainPanel.setCellWidth(self.left, '250') self.middle.add(self.blocksPad) self.middle.add(self.hardwaresPad) self.center = VerticalPanel(Width='100%', Height='100%', StyleName="center_panel") self.center.add(self.middle) #--------------------------------------------------------------------------------------------------------- bottom = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') self.showHideLeft = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar close_left') self.showHideLeft.addClickListener(self.showHidePanelLeft) self.showHideLeft.setStyleAttribute('float', 'lef') bottom.add(self.showHideLeft) self.showHideRight = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar') self.showHideRight.addClickListener(self.showHidePanelRight) bottom.add(self.showHideRight) self.showHideMonitor = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar') self.showHideMonitor.addClickListener(self.showHidePanelMonitor) bottom.add(self.showHideMonitor) self.resizeMonitor = ResizeWidget(self.serialMonitor, 100, 400, invert=True, horizontal=False) DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "none") bottom.add(self.resizeMonitor) self.center.add(bottom) self.center.setCellHeight(bottom, '20px') usbFlash = FocusWidget(Element=DOM.createDiv()) usbFlash.setID('cb_cf') DOM.setElemAttribute(usbFlash.getElement(), 'data-sections', 'usbflash serialmonitor') self.serialMonitor.add(usbFlash) progress = Element(Element=DOM.createDiv(), StyleName='progress progress-striped active') progress.setID('progress') DOM.setStyleAttribute(progress.getElement(), "display", "none") progress_val = Element(Element=DOM.createDiv(), StyleName='bar') progress_val.setID('progress_val') progress.add(progress_val) self.serialMonitor.add(progress) monitor = Element(Element=DOM.createDiv()) monitor.setID('monitor') self.serialMonitor.add(monitor) self.center.add(self.serialMonitor) self.center.setCellHeight(self.serialMonitor, '100') self.showHidePanelMonitor() #--------------------------------------------------------------------------------------------------------- self.mainPanel.add(self.center) #--------------------------------------------------------------------------------------------------------- self.cod = VerticalPanel(Width='100%', Height='100%', StyleName="right_panel") divCode = Element(Element=DOM.createDiv(), Width='100%', Height='100%', StyleName="download-button-container") divCode.add(self.codeTextArea) divButtonDownload = FocusWidget(Element=DOM.createDiv(), StyleName="download-button") #divButtonDownload.addClickListener(listener=lambda:exportWiringCode(self.codeTextArea.getText())) divButtonDownload.addClickListener(listener=lambda: exportWiringCode()) DOM.setInnerText(divButtonDownload.getElement(), 'download') divCode.add(divButtonDownload) self.cod.add(divCode) bot = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') res = ResizeWidget(self.cod, 100, 500, invert=True) res.setStyleAttribute('float', 'left') bot.append(res) self.cod.add(bot) self.cod.setCellHeight(bot, '20px') self.mainPanel.add(self.cod) self.mainPanel.setCellWidth(self.cod, '200') self.showHidePanelRight() self.header.buttonBlocks.addClickListener(self.showBlocksList) self.header.buttonHarwares.addClickListener(self.showHardwaresList) self.header.buttonTranslate.addClickListener(self.showPanelRight) #self.header.buttonReload.addClickListener(self.hidePanelRight) #--------------------------------------------------------------------------------------------------------- self.add(self.mainPanel) stateChange() self.changeLanguage('pt_BR')
def setPixelHeight(self, height): FocusWidget.setHeight(self, str(height) + "px") self.impl.setPixelHeight(self.getCanvasElement(), height)
def __init__(self, **kwargs): if not kwargs.has_key("StyleName"): kwargs["StyleName"] = "gwt-RichTextArea" self.impl = RichTextAreaImplStandard() FocusWidget.__init__(self, self.impl.getElement(), **kwargs)
def setWidth(self, width): FocusWidget.setWidth(self, width) self.canvas.width = width
def __init__(self, **kwargs): if not kwargs.has_key('StyleName'): kwargs['StyleName'] = "gwt-RichTextArea" self.impl = RichTextAreaImplStandard() FocusWidget.__init__(self, self.impl.getElement(), **kwargs)
def __init__(self, **kwargs): if not kwargs.has_key('StyleName'): kwargs['StyleName']="gwt-ListBox" self.INSERT_AT_END = -1 element = kwargs.pop('Element', None) or DOM.createSelect() FocusWidget.__init__(self, element, **kwargs) ChangeHandler.__init__(self)
def setPixelWidth(self, width): width = int(width) self.pixelWidth = width FocusWidget.setWidth(self, width) DOM.setElemAttribute(self.canvas, "width", str(width)) self._set_base_transform()