Разыскиваю хорошие примеры, в частности для создания toolbar'ов.
В общем: "Поможите, чем можите, люди добрыя!" :D

ViRUS
Так возьми любое расширение, которое вместе с другими функциями создаёт панель, распотороши, удали лишнее, добавь нужное, спроси автора не возражает ли.

http://www.chrispederick.com/work/firefox/webdeveloper/
http://www.placenamehere.com/pnhtoolbar/
http://multizilla.mozdev.org
и там же гуглбар
ещё поисковые какие-то попадались с панелями и ещё биобар, помнится.

vladmir
Спасибо, а попадались расширения, которые тулбар вниз добавляют, над статусбаром?

ViRUS
В multizilla можно панель табов расположить внизу.
Найди окно с этой настройкой в мульте - или в самом файле или в интерфейсе, там выцепи команду, которая меняет - или в самом файле или через дом-инспектор, скопируй её и проведи поиск - найдёшь javascript и какой-нибудь ...overlay.xul со скелетом панели.

Чтобы только внизу - что-то не вспоминается.
А что за расширение-то?
Может встроить выпадающее меню в статус, как у адблока?



<radiogroup id="TabBarPosition" class="indent" preftype="bool"
                    prefattribute="value" prefstring="multizilla.tabs.ontop">
          <radio value="true" label="&topTabs.label;" accesskey="&topTabs.accesskey;"/>
          <radio value="false" label="&bottomTabs.label;" accesskey="&bottomTabs.accesskey;"/>

multizilla.tabs.ontop

tabbrowser.xml

Та нее! Не выпадающее... хуже! Хочу панель поиска сваять, как в лисе! :)

ViRUS

Как двигается? :-)

Панель можно разместить внизу вот так:

{-moz-box-direction: reverse}

Для панели табов в userChrome.css

tabbrowser tabbox {-moz-box-direction: reverse !important}

vladmir
Панель-то сваял... А на поиске загнулся... :(

ViRUS

Панель-то сваял... А на поиске загнулся...

Для начала, наверное достаточно взять родное окошко поиска и встроить его (функции) в панель.

Мне хватает этого окна, только я его сжал в юзерхроме, чтобы меньше места занимало. Но обычно ищу "по мере набора" - оч удобно.

Полностью перенести функционал Фоксового поиска - эт не хухры-мухры.

Обрати внимание на проект xSidebar for Seamonkey

http://xsidebar.mozdev.org/
http://forums.mozillazine.org/viewtopic.php?t=364100

xSidebar is an extension that brings the look and feel of Firefox style sidebars to Seamonkey.

In addition , xSidebar also implements the infractructure - the XUL elements and javascript APIs from Firefox - to make porting Firefox sidebar extensions to Seamonkey as painless as possible.

В принципе, та же цель - портация расширений Фокса в Симанки, приглядись, может что пригодится.

У него уже и Scrapbook портирована, поставил, работает. Ежли б мне нужен был весь функционал Скрапбука, - я б возрадовался. DevBoi - плезная штука для разработчиков. Ну и другие всякие расширения.

Several Firefox sidebar extensions have been ported to Seamonkey. Get them here:
http://xsidebar.mozdev.org/modified.html

vladmir
Спасибо! Пойду на второй заход! ;)

vladmir
Дело двигатся, но медленно. Как убрать grippy с тулбара? И как сделать полноценное расширение? У меня затык на install.js, не пойму что туда писать...

PS: Панель табов вниз загоняется легко, а вот любую другую никак... Что надо в userchrome.css (css в расширение я ещё не добавлял...) написать, чтоб, допустим, панель навигации вниз убрать?

PPS:
findbar.jpg

Сделал CSS, но вниз панель всё равно не уходит, а grippy почему-то вправо ушёл...
findbar2.jpg

Как убрать grippy с тулбара?

Вот из-за таких вот господ grippies убраны не только как отключаемая возможность, но и вообще полностью, из Firefox и части тем под Mozilla Suite. Приходится Toolbar Grippies ставить, чтобы выглядело и работало приятнее.

Вот из-за таких вот господ grippies убраны не только как отключаемая возможность, но и вообще полностью, из Firefox и части тем под Mozilla Suite. Приходится Toolbar Grippies ставить, чтобы выглядело и работало приятнее.

Эта панель призвана косить под ФФ, поэтому grippy на ней не нужен.

Вот чего удалось добиться. Поиск работает частично - только Highlight all.
Если есть желающие помочь - буду рад.
findbar3.jpg

Как убрать grippy с тулбара?

Если через userChrome.css

Выделить код

Код:

toolbar>toolbargrippy { display: none !important; }

не работает, то выкинуть toolbargrippy из toolkit.jar/content/global/bindings/toolbar.xml. Ну или скопировать toolbar.xml, выкинуть toolbargrippy из копии и "пришивать" эту копию через userChrome.css.

ViRUS В Fx'e код панели уже смотрел?

В Fx'e код панели уже смотрел?

Так многое из него и есть! :) Архитектура у них разная... :(

Anton

toolbar>toolbargrippy { display: none !important; }

Это хорошо, но как убрать не со всех, а с конкретного? Например с "FindToolbar"?

Через идентификатор
#id>toolbargrippy
Или свой класс назначить
.class>toolbargrippy
Или панель эта всё равно "дочерняя" по отношению к какому-нибудь элементу
parentElementSelector>toolbar>toolbargrippy

Anton
Спасибо, grippy убрал.
findbar4.jpg

ViRUS

как сделать полноценное расширение? У меня затык на install.js, не пойму что туда писать..

Цитирую себя:

Если (вдруг) для Мозиллы не делал - посмотри как в autocopy выглядит install.js - там разложено по порядку в комментариях, - только имя поменять и путь внутри jar
В JS не разбираюсь, только покоцать могу по аналогии (просил автора URIid сделать вставку адреса стр - он не ответил, пришлось самому.)

Как убрать grippy с тулбара?

Видишь ли, grippy весьма привычная для Мозиллы - Симанки штука, лучше бы с ней. Убрать в тех, что уже есть, можно через юзерхром.

/* убирает кнопки, сворачивающие панели */
toolbargrippy {display: none !important;
}

Панель табов вниз загоняется легко, а вот любую другую никак.

Это ты про
tabbrowser tabbox {-moz-box-direction: reverse !important}
?
Ну так tabbrowser и есть панель табов, найди как называется та панель, которую хочешь двигать.

Эта панель призвана косить под ФФ, поэтому grippy на ней не нужен.

Не очень понятный аргумент.

Это хорошо, но как убрать не со всех, а с конкретного? Например с "FindToolbar"?

FindToolbar toolbargrippy {display: none !important;
}

:)

vladmir

Это ты про
tabbrowser tabbox {-moz-box-direction: reverse !important}
?

Ага! ;) Как мне мой "FindToolbar" вниз загнать? Насчёт остального - см. выше - видать проглядел, я grippy уже убрал. Щас осталось поиск завести и расширение готово. Когда работать заставлю, можно будет и интерфейс в деталях обсудить...

ViRUS

Ага! wink Как мне мой "FindToolbar" вниз загнать?

Это ж обычный CSS.
Это во-первых, а во-вторых, я ж не вижу что ты у себя написал и как назвал этот "FindToolbar"
Наверное нужно попробовать подцепить к панели вот это
{-moz-box-direction: reverse !important}
правда я не делал, может и не так.)

Он так и называется "FindToolbar". :) А насчёт {-moz-box-direction: reverse !important} - порядок меняется в пределах тулбара - grippy направо уходит и всё... :(

Встречаем. Версия 0.0.1 - дикая альфа. Прошу проверить установщик, смену локали и тем оформления (вдруг где grippy вылезет), если всё будет работать - с интерфейсом завязываю и вплотную перехожу к реализации поиска.

vladmir
С расположением панели разобрался, описанный Вами метод в этом случае не поможет, надо делать так:

Выделить код

Код:

<toolbox id="aiostbx-bottom-toolbox" insertbefore="status-bar" palette="BrowserToolbarPalette"

Нашёл это в AiOS.

Не удержался - решил выложить, удалось заменить стандартный диалог поиска на вызов панельки, в отличие от оригинала она по Ctrl+F умеет прятаться. На радостях поднял номер версии... :D
Findbar 0.0.2
(локали пока две, но как закончу с поиском - добавлю для всех языков.)

Нужна помощь с nsITypeAheadFind, буду рад любой информации, особенно примерам использования... Удалось найти только описание на xulplanet.com.

ViRUS

Встречаем. Версия 0.0.1

Ща встретим.)))

дикая альфа

Чёт боязно, хоть не кусается?

вдруг где grippy вылезет

Если нельзя будет свернуть панель щелчком по панели (по этому самому гриппу)), то это будет не в духе Мозиллы-Симанки. Нет, дело хозяйское, конечно, но не удивляйся, если кого-то будет раздражать.

описанный Вами метод

Обидился? :)

Нашёл это в AiOS.

Находчивый!

Findbar 0.0.2

Не успеешь качнуть одно как тут же не успеешь другое.

ViRUS пишет

Нужна помощь с nsITypeAheadFind, буду рад любой информации, особенно примерам использования... Удалось найти только описание на xulplanet.com.

Поэксперементировал в Extension Developer на FF. Вот результаты:
1. Создаём экземпляр объекта

Выделить код

Код:

var taf = Components. classes ["@mozilla.org/typeaheadfind;1"].
          createInstance (Components. interfaces. nsITypeAheadFind);

2. Инициализируем его свойством docShell браузера (я использовал дополнительный код)

Выделить код

Код:

function getTopWin ()
{
    var windowManager = Components. classes ['@mozilla.org/appshell/window-mediator;1']. getService();
    var windowManagerInterface = windowManager.
                                 QueryInterface (Components. interfaces. nsIWindowMediator);
    var topWindowOfType = windowManagerInterface. getMostRecentWindow ("navigator:browser");
    
    if (topWindowOfType)
    {
        return topWindowOfType;
    }
    return null;
}
var b = getTopWin (). getBrowser ();
var ds = b. docShell. QueryInterface (Components. interfaces. nsIDocShell);
taf. init (ds);

3. Устанавливаем значение свойства caseSensitive

Выделить код

Код:

taf. caseSensitive = false;

4. Ищем первое вхождение

Выделить код

Код:

print (taf. find ("hello", false));

Первый аргумент метода find - искомая строка, второй указывает на необходимость поиска только в ссылках (если равен true). Метод возвращает одно из трёх значений:

Выделить код

Код:

Components. interfaces. nsITypeAheadFind. FIND_FOUND = 0
Components. interfaces. nsITypeAheadFind. FIND_NOTFOUND = 1
Components. interfaces. nsITypeAheadFind. FIND_WRAPPED = 2

0 - найдено, 1 - не найдено, 2 - найдено в ссылке
Найденный текст выделяется.
5. Ищем следующее вхождение

Выделить код

Код:

print (taf. findNext ());

Метод findNext возвращает те же значения, что и метод find.
С методом setDocShell не разобрался.

М-да. Альфа действительно дикая. Хозяина не слушается.
Найти следующее/предыдущее не работает.
Подсветка работает криво - старая подсветка не отрубается при вводе нового слова.
Жду более ручных версий.

Попробовал поставить 0.0.2 и что-то не вижу панели.
По логу ошибок нет.
В меню ничего не вижу нового, а должно.
findbar.jar лежит в chrome профиля.
Может быть из-за др расширений?
SM английская.
При поиске по мере набора панель не появляется.
В доминспекторе он есть выше статуса.

Открыл findbar.jar
выкинул  hidden="true"
панель появилась

не ищет
срабатывает только highlight all - когда кнопка нажата, а потом отжата
match case срабатывает
ещё срабатывает кнопка закрыть.))

У меня по ctrl+F появлялась

ViRUS
Есть такое замечание по коду
А не проще ли "перекрыть" оверлеем стандартные команды поиска

Выделить код

Код:

<command id="Browser:Find" oncommand="showFindBar();"/>
<command id="Browser:FindAgain" oncommand="findNext();"/>
<command id="Browser:FindPrev" oncommand="findPrev();"/>

и обойтись в этом случае одним оверлеем ?

Anton
это моё первое расширение, на нем я собственно и учусь. Оверлея два потому, что один перекрывает интерфейс, а другой именно команды поиска... За примеры спасибо - разбираюсь...

ViRUS пишет

...Оверлея два потому, что один перекрывает интерфейс, а другой именно команды поиска...

Суть моего замечания не в количестве оверлеев. При нажатии Ctrl+F элемент

Выделить код

Код:

<key id="key_find"...

выполняет команду

Выделить код

Код:

<command id="Browser:Find"...

Поэтому можно перекрыть или

Выделить код

Код:

<key id="key_find"...
<key id="key_findAgain"...
<key id="key_findPrev"...

или соответствующие команды, тогда не надо указывать лишние key и command.
Мне больше нравится вариант с перекрытием command, т. к. в этом случае мне не пришлось иметь дело с атрибутами keyCode и modifiers.

Anton
Понял! ;) Щас поправлю...