!import
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
1 <?xml version="1.0"?>
2
3
4 <!DOCTYPE bindings [
5 <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
6 %globalDTD;
7 ]>
8
9 <bindings id="SearchBindings"
10 xmlns="http://www.mozilla.org/xbl"
11 xmlns:html="http://www.w3.org/1999/xhtml"
12 xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
13 xmlns:xbl="http://www.mozilla.org/xbl">
14
15 <binding id="searchbar" extends="chrome://global/content/bindings/textbox.xml#textbox">
16 <resources>
17 <stylesheet src="chrome://messenger/skin/searchBox.css"/>
18 </resources>
19 <content>
20 <children/>
21 <xul:hbox class="quick-search-textbox textbox-input-box" flex="1">
22 <html:input class="textbox-input" flex="1" anonid="input" allowevents="true"
23 xbl:inherits="onfocus,onblur,value,type,maxlength,disabled,size,readonly,tabindex,accesskey"/>
24 </xul:hbox>
25 <xul:toolbarbutton id="quick-search-clearbutton" xbl:inherits=""
26 disabled="true" class="quick-search-clearbutton"
27 onclick="onClearSearch(); return false;"
28 chromedir="&locale.dir;"/>
29 </content>
30
31 <implementation>
constructor
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
32 <constructor>
33 <![CDATA[
34 // initialize the quick search mode based on the checked menu item
35 var desiredQuickSearchMode = document.getElementById('quick-search-menupopup').getAttribute('value');
36
37 var menuItems = document.getElementById('quick-search-menupopup').getElementsByAttribute('value', '*');
38 var selectedMenuItem;
39 for (var index = 0; index < menuItems.length; index++)
40 if (menuItems[index].value == desiredQuickSearchMode)
41 {
42 selectedMenuItem = menuItems[index];
43 break;
44 }
45
46 // if we failed to find selectedMenuItemVal in our array of menuitems
47 // then just use the first menu item in the array (surely we have at least one menu item!)
48 // This scenario happens when we decide to obsolete/delete search modes from
49 // the quick search drop down.
50 if (!selectedMenuItem)
51 selectedMenuItem = menuItems[0];
52
53 selectedMenuItem.setAttribute('checked', 'true');
54 this.mQuickSearchMode = selectedMenuItem.value; // the checked menu item
55 this.setSearchCriteriaText();
56 ]]>
57 </constructor>
58
get_showingSearchCriteria
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
set_showingSearchCriteria
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
59 <property name="showingSearchCriteria" onget="return this.getAttribute('searchCriteria') == 'true';"
60 onset="this.setAttribute('searchCriteria', val); return val;"/>
61
get_clearButtonHidden
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
set_clearButtonHidden
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
62 <property name="clearButtonHidden" onget="return document.getElementById('quick-search-clearbutton').getAttribute('clearButtonHidden') == 'true';"
63 onset="document.getElementById('quick-search-clearbutton').setAttribute('clearButtonHidden', val); return val;"/>
64
field_mQuickSearchMode
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
65 <field name="mQuickSearchMode">0</field>
66
67 // DND Observer
field_searchInputDNDObserver
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
68 <field name="searchInputDNDObserver" readonly="true"><![CDATA[
69 ({
70 inputSearch: this,
71
onDrop
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
72 onDrop: function (aEvent, aXferData, aDragSession)
73 {
74 if (aXferData.data) {
75 this.inputSearch.focus();
76 this.inputSearch.value = aXferData.data;
77 this.inputSearch.clearButtonHidden = false;
78 onSearchInput(true);
79 }
80 },
81
getSupportedFlavours
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
82 getSupportedFlavours: function ()
83 {
84 var flavourSet = new FlavourSet();
85 flavourSet.appendFlavour("text/unicode");
86 return flavourSet;
87 }
88 })
89 ]]></field>
90
get_searchMode
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
set_searchMode
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
91 <property name="searchMode" onget="return this.mQuickSearchMode;"
92 onset="this.mQuickSearchMode = val; document.getElementById('quick-search-menupopup').setAttribute('value', val);"/>
93
94 <method name="setSearchCriteriaText">
setSearchCriteriaText
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
95 <body><![CDATA[
96 this.showingSearchCriteria = true;
97 // extract the label value from the menu item
98 var menuItems = document.getElementById('quick-search-menupopup').getElementsByAttribute('value', this.searchMode);
99 this.inputField.value = menuItems[0].getAttribute('label');
100 this.clearButtonHidden = true;
101 ]]></body>
102 </method>
103
104 <method name="openmenupopup">
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
105 <body>
106 <![CDATA[
107 document.getElementById('quick-search-menupopup').click();
108 return false;
109 ]]>
110 </body>
111 </method>
112 </implementation>
113
114 <handlers>
oninput
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
115 <handler event="input">
116 <![CDATA[
117 if (!this.value)
118 this.clearButtonHidden = true;
119 else
120 this.clearButtonHidden = false;
121 ]]></handler>
122
onkeypress
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
123 <handler event="keypress" keycode="VK_UP" modifiers="control" phase="capturing">
124 <![CDATA[
125 var menuPopup = document.getElementById('quick-search-menupopup');
126 var menuPopupValue = menuPopup.getAttribute('value');
127 if (menuPopupValue > 0)
128 {
129 menuPopup.getElementsByAttribute('value', this.searchMode)[0].removeAttribute('checked');
130 this.searchMode = --menuPopupValue;
131 menuPopup.getElementsByAttribute('value', this.searchMode)[0].setAttribute('checked', 'true');
132 menuPopup.setAttribute('value', this.searchMode);
133 }
134 ]]></handler>
135
onkeypress
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
136 <handler event="keypress" keycode="VK_DOWN" modifiers="control" phase="capturing">
137 <![CDATA[
138 var menuPopup = document.getElementById('quick-search-menupopup');
139 var menuPopupValue = menuPopup.getAttribute('value');
140 if (menuPopupValue < 4) // Keep this value in synch with mailWindowOverlay.xul
141 {
142 menuPopup.getElementsByAttribute('value', this.searchMode)[0].removeAttribute('checked');
143 this.searchMode = ++menuPopupValue;
144 menuPopup.getElementsByAttribute('value', this.searchMode)[0].setAttribute('checked', 'true');
145 menuPopup.setAttribute('value', this.searchMode);
146 }
147 ]]></handler>
148
onkeypress
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
149 <handler event="keypress" keycode="VK_DOWN" modifiers="alt" phase="capturing" action="return this.openmenupopup();"/>
onkeypress
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
150 <handler event="keypress" keycode="VK_UP" modifiers="alt" phase="capturing" action="return this.openmenupopup();"/>
151
152
ondragdrop
(0 calls, 0 incl. v-uS, 0 excl. v-uS)
153 <handler event="dragdrop" phase="capturing">
154 nsDragAndDrop.drop(event, this.searchInputDNDObserver);
155 </handler>
156 </handlers>
157 </binding>
158
159 <binding id="searchBarDropMarker">
160 <resources>
161 <stylesheet src="chrome://messenger/skin/searchBox.css"/>
162 </resources>
163 <content popup="_child">
164 <children/>
165 <xul:stack flex="1">
166 <xul:hbox align="center">
167 <xul:image class="quick-search-button-image" xbl:inherits="src"/>
168 </xul:hbox>
169 <xul:hbox align="center">
170 <xul:image class="quick-search-button-dropmarker"/>
171 </xul:hbox>
172 </xul:stack>
173 </content>
174 </binding>
175
176 </bindings>