Панель поиска Firefox, обычно справа вверху, имеет type="autocomplete"
и имеет searchbutton
Первое: browser.xul Firefox имеет toolbaritem
, в которое searchbar
вложено.
<toolbaritem id="search-container" title="&searchItem.title;"
align="center" class="chromeclass-toolbar-additional"
flex="100" persist="width" removable="true">
<searchbar id="searchbar" flex="1"/>
</toolbaritem>
searchbar
имеет следующее свойство css в browser.css.
searchbar {
-moz-binding: url("chrome://browser/content/search/search.xml#searchbar");
}
Этот URL в свойстве css приводит нас к search.xml, который имеет textbox
, а searchbutton
добавляется к textbox
в hbox
, насколько я понимаю.
<xul:textbox class="searchbar-textbox"
anonid="searchbar-textbox"
type="autocomplete"
flex="1"
autocompletepopup="PopupAutoComplete"
autocompletesearch="search-autocomplete"
autocompletesearchparam="searchbar-history"
timeout="250"
maxrows="10"
completeselectedindex="true"
showcommentcolumn="true"
tabscrolling="true"
xbl:inherits="disabled,disableautocomplete,searchengine,src,newlines">
<xul:box>
<xul:button class="searchbar-engine-button"
type="menu"
anonid="searchbar-engine-button">
<xul:image class="searchbar-engine-image" xbl:inherits="src"/>
<xul:image class="searchbar-dropmarker-image"/>
<xul:menupopup class="searchbar-popup"
anonid="searchbar-popup">
<xul:menuseparator/>
<xul:menuitem class="open-engine-manager"
anonid="open-engine-manager"
label="&cmd_engineManager.label;"
oncommand="openManager(event);"/>
</xul:menupopup>
</xul:button>
</xul:box>
<xul:hbox class="search-go-container">
<xul:image class="search-go-button"
anonid="search-go-button"
onclick="handleSearchCommand(event);"
tooltiptext="&searchEndCap.label;" />
</xul:hbox>
</xul:textbox>
Ну, это не полный ответ, но дает старт для вас или других, кто может внести свой вклад, я думаю.Для получения более подробной информации вы можете найти файл omni.jar в каталоге Mozilla Firefox.