40         \
Magento\Framework\View\
Layout\ProcessorFactory $layoutProcessorFactory,
    45         $this->_layoutProcessorFactory = $layoutProcessorFactory;
    46         $this->_themesFactory = $themesFactory;
    47         $this->_appState = $appState;
    48         parent::__construct($context, 
$data);
    60             $layoutUpdateParams = [
'theme' => $this->_getThemeInstance($this->getTheme())];
    61             $designAbstractions = $this->_appState->emulateAreaCode(
    65             $this->_addDesignAbstractionOptions($designAbstractions);
    67         return parent::_beforeToHtml();
    76     protected function _getThemeInstance($themeId)
    79         $themeCollection = $this->_themesFactory->create();
    80         return $themeCollection->getItemById($themeId);
    91         return $this->_layoutProcessorFactory->create(
$arguments);
   100     protected function _addDesignAbstractionOptions(array $designAbstractions)
   104         foreach ($designAbstractions as $key => 
$row) {
   107         array_multisort(
$label, SORT_STRING, $designAbstractions);
   113         $layoutProcessor = $this->_layoutProcessorFactory->create();
   114         foreach ($designAbstractions as $pageTypeName => $pageTypeInfo) {
   115             if ($layoutProcessor->isPageLayoutDesignAbstraction($pageTypeInfo)) {
   116                 $pageLayouts[] = [
'value' => $pageTypeName, 
'label' => $pageTypeInfo[
'label']];
   118                 $customLayouts[] = [
'value' => $pageTypeName, 
'label' => $pageTypeInfo[
'label']];
 
addOption($value, $label, $params=[])
 
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]