code: public function generate()
  	{
  		$arrUnits = array();
  
  		foreach ($this->arrUnits as $arrUnit)
  		{
  			$arrUnits[] = sprintf('<option value="%s"%s>%s</option>',
  								   StringUtil::specialchars($arrUnit['value']),
  								   $this->isSelected($arrUnit),
  								   $arrUnit['label']);
  		}
  
  		$arrFields = array();
  		$arrKeys = array('top', 'right', 'bottom', 'left');
  
  		if (!\is_array($this->varValue))
  		{
  			$this->varValue = array();
  		}
  
  		foreach ($arrKeys as $strKey)
  		{
  			$arrFields[] = sprintf('<input type="text" name="%s[%s]" id="ctrl_%s" class="tl_text_trbl trbl_%s%s" value="%s"%s onfocus="Backend.getScrollOffset()">',
  									$this->strName,
  									$strKey,
  									$this->strId.'_'.$strKey,
  									$strKey,
  									(($this->strClass != '') ? ' ' . $this->strClass : ''),
  									StringUtil::specialchars(@$this->varValue[$strKey]), // see #4979
  									$this->getAttributes());
  		}
  
  		return sprintf('%s <select name="%s[unit]" class="tl_select_unit" onfocus="Backend.getScrollOffset()"%s>%s</select>%s',
  						implode(' ', $arrFields),
  						$this->strName,
  						$this->getAttribute('disabled'),
  						implode('', $arrUnits),
  						$this->wizard);
  	}
docs: Generate the widget and return it as string
  
  @return string