Страницы: 1
Во всех программах мозилла, реализован механизм вкладок, с контентом внутри.
Это и новые окна браузера, и новые письма, и календарь, и даже вкладка с дополнениями. Везде контент разный. А внешний вид механизма вкладок одинаковый.
Хочу реализовать такой же в своей программе на XULRUNNER. Однако человеко понятной документации на русском языке не нашел, как все это сделано. Это Tab, Browser, или tabbrowser. ? Или все вместе? Из элементов по умолчанию я так и не смог сделать что то похожее.
Подскажите из чего это (механизм вкладок) сделано и как это настроить.
Необходимо:
1. Вкладка по умолчанию, ( с кнопкой закрыть на ней) + кнопка добавления новой вкладки.
2. При нажатии на кнопку показать новую вкладку с размещенной на ней консолью ( или менеджером дополнений)
Заранее спасибо.
Отсутствует
В простейшем виде делается через <tabbox>:
https://developer.mozilla.org/en-US/doc … l/Tabboxes
Но если нужны вкладки с кнопками, то уже сложнее, в Firefox это сделано через
.tabbrowser-tab { -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-tab"); }
То есть переопределяется внешний вид и поведение у <tab>'ов.
Дальше в каждую <tabpanel> помещается <browser>.
Но если доступен <tabbrowser> (что вряд ли – там chrome://browser/content/tabbrowser.xml, а не chrome://global/content/...), можно приспособить и его.
Добавлено 07-05-2014 16:05:45
Собственно, <tabbrowser>, используемый в Firefox – это надстройка над <tabbox>'ом, только еще <tabs> расположены отдельно, а не внутри.
Вот из view-source:chrome://browser/content/tabbrowser.xml#tabbrowser:
<binding id="tabbrowser"> <resources> <stylesheet src="chrome://browser/content/tabbrowser.css"/> </resources> <content> <xul:stringbundle anonid="tbstringbundle" src="chrome://browser/locale/tabbrowser.properties"/> <xul:tabbox anonid="tabbox" class="tabbrowser-tabbox" flex="1" eventnode="document" xbl:inherits="handleCtrlPageUpDown" onselect="if (event.target.localName == 'tabpanels') this.parentNode.updateCurrentBrowser();"> <xul:tabpanels flex="1" class="plain" selectedIndex="0" anonid="panelcontainer"> <xul:notificationbox flex="1"> <xul:hbox flex="1" class="browserSidebarContainer"> <xul:vbox flex="1" class="browserContainer"> <xul:stack flex="1" class="browserStack" anonid="browserStack"> <xul:browser anonid="initialBrowser" type="content-primary" message="true" xbl:inherits="tooltip=contenttooltip,contextmenu=contentcontextmenu,autocompletepopup,selectpopup"/> </xul:stack> </xul:vbox> </xul:hbox> </xul:notificationbox> </xul:tabpanels> </xul:tabbox> <children/> </content> ...
Отредактировано Infocatcher (07-05-2014 16:05:45)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Страницы: 1