>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Вкладки FF http://forum.mozilla-russia.org/viewtopic.php?id=17769 |
Василий Литвинов > 29-06-2007 19:54:28 |
Подскажите как реализовать в xul приложении вкладки как в FF. |
Anton > 29-06-2007 23:21:27 |
Или сделать собственную привязку на нужные tab'ы (не пробовал, но мне кажется, достаточно добавить в <content.. <children/>), или вместо <tab'ов помещать в <tabs> нужные элементы. p.s. проверил, почти достаточно, кроме добавления <children/> нужно изменить атрибут display на xul:box |
Василий Литвинов > 30-06-2007 00:01:45 |
а можно примером кода? |
Anton > 30-06-2007 00:53:34 |
1. Берём из toolkit.jar файл tabbox.xml, делаем его копию, скажем, ctabs.xml. Выделить код Код:<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <tabbox> <tabs> <tab label="1"> <button label="11" oncommand="alert(11)"/> <button label="12"/> </tab> <tab label="2"> <vbox> <button label="21"/> <button label="22"/> </vbox> </tab> </tabs> </tabbox> </window> ctabs.xml должен находится где-нибудь в chrome. Вроде всё. |
Dark-Demon > 30-06-2007 01:13:49 |
распотраши tabbrowser.xml |
Василий Литвинов > 01-07-2007 15:23:42 |
Ничего не выходит вот мой ctabs.xml Выделить код Код:<?xml version="1.0"?> <bindings id="s_tabBindings" xmlns="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xbl="http://www.mozilla.org/xbl"> <binding id="s_tab" display="xul:box"> <xul:hbox align="center" flex="1"> <children> <xul:image/> <xul:label/> <xul:button/> </children> </xul:hbox> </binding> </bindings> Выделить код Код:<tabbox> <tabs> <tab label="1" style="-moz-binding: url(chrome://content/ctabs.xml#s_tab-binding);"> <button label="11" oncommand="alert(11)"/> <button label="12"/> </tab> <tab label="2"> <vbox> <button label="21"/> <button label="22"/> </vbox> </tab> </tabs> </tabbox> но ничего не выходит. поправте, что неправильно делаю. |
Anton > 01-07-2007 16:02:30 |
http://pastebin.mozilla-russia.org/61131
И у меня тоже самое получается. То же самое получится и без ctabs.xml, единственное, для чего нужна правка стандартного binding tab - чтобы дочерние элементы tab'ов могли обрабатывать пользовательский ввод. |
Василий Литвинов > 01-07-2007 16:25:27 |
А куда девается обрисовка вкладки. Остаются только кнопки, а стандартный вид кудато пропадает. |
Anton > 01-07-2007 17:05:22 |
может, новый binding "подшивается" неправильно ? Вот мой скриншот: http://forum.mozilla-russia.org/uploaded/tabs.png Я, правда, не стал выяснять, где в xulrunner'е chrome, сделал в tabbox.xml копию <binding id="tab".., сделал ему id="tab2", display="xul:box" и добавил <children/> в <xul:hbox..., в xul-файле к tab'ам подшил так: Выделить код Код:<tab label="1" style="-moz-binding:url(chrome://global/content/bindings/tabbox.xml#tab2);"> Добавлено Вск 01 Июл 2007 17:10:16 : Василий Литвинов пишет id'ы разные - у binding'а "s_tab", а "подшивается" "s_tab-binding". Добавлено Вск 01 Июл 2007 17:12:46 : |
Василий Литвинов > 01-07-2007 22:22:44 |
а я все голову ломал. Спасибо! |
Василий Литвинов > 02-07-2007 17:59:14 |
А как сделать вкладки снизу, а не сверху как стандартные? |
Infant > 02-07-2007 19:02:10 |
Василий Литвинов Добавлено Пнд 02 Июл 2007 19:03:12 : |
Василий Литвинов > 04-07-2007 16:42:49 |
Подскажите как перевернуть сами вкладки в <tabbrowser>. Но они сами все равно смотрят вниз. Выделить код Код:#s_browser_bottom > tab { -moz-appearance: none !important; /*background: url("chrome://multiviews/skin/images/tabstrip/tab-background.png") center repeat-x;*/ border: 1px solid; border-bottom: 3px solid; -moz-border-top-colors: #B5B5B5; -moz-border-right-colors: #91A7B4; -moz-border-bottom-colors: #91A7B4 transparent transparent; -moz-border-left-colors: #91A7B4; -moz-border-radius-bottomleft: 2px; -moz-border-radius-bottomright: 2px; padding: 0px 3px 1px 4px; margin-top: 0px; margin-bottom: 3px; } А еще при добавлении первой(!) новой владки : Выделить код Код:function s_NewTab_bottom() {try{var myBrowser = document.getElementById('s_browser_bottom'); myBrowser.selectedTab = myBrowser.addTab(); }catch(e){alert(e);} } Подскажите пожалуйста, что я неправильно делаю? |
Anton > 04-07-2007 19:39:07 |
1. Василий Литвинов пишет
Вроде бы надо #s_browser_bottom > tabbox Или Dark-Demon пишет
по аналогии с <tab> 2.
Надо добавить в документ элемент <menu id="menu_closeWindow"/>. Потом будет ругань на отсутствие id="menu_close". Добавить его. Потом позаботиться о наличии в prefs.js настроек browser.chrome.site_icons, browser.chrome.favicons. Потом ещё ошибки вылезут, разобраться с ними и т. д. В общем, насколько я понимаю, тут два варианта: либо перетащить какую-то часть кода Firefox на поддержку tabbrowser, либо обкастрировать его под свои нужды. Иначе он работать не хочет. |
Василий Литвинов > 04-07-2007 20:04:13 |
Что с ">", что без нее кладки получаются снизу(чего и добивался). Но мне нужно чтобы сами вкладки смотрели вверх, а не вниз. |
Anton > 04-07-2007 20:18:24 |
Так уже подсказал. Берем tabbrowser.xml, делаем копию <binding id="tabbrowser"..., меняем местами что нужно, вырезаем код, который даёт ошибки и т. д. |
Dark-Demon > 04-07-2007 20:41:42 |
Василий Литвинов, открой архив со скином и переверни соответствующие картинки. |
Василий Литвинов > 05-07-2007 00:57:27 |
где ты интересно увидел там картинки? по моему это все реализуется при помощи css! |
Dark-Demon > 05-07-2007 01:29:46 |
через css подключаются картинки. |