Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1292 → Rev 1293

/firefox/selsearch/trunk/chrome/content/selsearch.xul
0,0 → 1,17
<?xml version="1.0"?>
 
<overlay id="selsearch"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
<script type="application/x-javascript" src="chrome://selsearch/content/selsearch.js">
</script>
<popup id="contentAreaContextMenu">
<menu id="context-selsearch-submenu" class="menuitem-iconic" insertafter="context-searchselect">
<menupopup id="context-selsearch-menupopup">
</menupopup>
</menu>
</popup>
<menuitem id="context-searchselect" removeelement="true" />
</overlay>
/firefox/selsearch/trunk/chrome/content/selsearch.js
0,0 → 1,107
var SelSearch = {
init: function()
{
var menu = document.getElementById('contentAreaContextMenu');
menu.addEventListener('popupshowing', SelSearch.onPopupShowing, false);
},
 
onPopupShowing: function()
{
try {
var sel = getBrowserSelection(16);
var submenu = document.getElementById('context-selsearch-submenu');
var popup = document.getElementById('context-selsearch-menupopup');
if(submenu && popup) {
while(popup.hasChildNodes()){
popup.removeChild(popup.firstChild);
}
if(sel) {
if(sel.length > 15) {
sel = sel.substr(0,15) + "\u2026";
}
 
submenu.hidden = false;
submenu.label = 'Search "' + sel + '" in';
 
var ss = SelSearch.getSearchService();
var engines = ss.getVisibleEngines({ });
 
if(engines && engines.length > 0) {
var curEngine;
if(isElementVisible(BrowserSearch.searchBar)) {
curEngine = ss.currentEngine.name;
}
else {
curEngine = ss.defaultEngine.name;
}
// show the default engine
for(var i = 0, l = engines.length; i < l; ++i) {
if(engines[i].name == curEngine) {
SelSearch.addMenuItem(popup, i, engines[i].name, engines[i].iconURI, true);
popup.appendChild(document.createElementNS(
'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'menuseparator'));
break;
}
}
// show all
for(var i = 0, l = engines.length; i < l; ++i) {
SelSearch.addMenuItem(popup, i, engines[i].name, engines[i].iconURI, engines[i].name == curEngine);
}
}
}
else {
submenu.hidden = true;
submenu.label = 'Search in';
}
}
}
catch(ex) {
alert(ex);
}
},
 
getSearchService: function()
{
const nsIBSS = Components.interfaces.nsIBrowserSearchService;
return Components.classes["@mozilla.org/browser/search-service;1"].getService(nsIBSS);
},
addMenuItem: function(popup, num, label, iconURI, bold)
{
var e = document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'menuitem');
e.setAttribute('label', label);
e.setAttribute('oncommand', 'SelSearch.search(' + num + ')');
e.setAttribute('class', 'menuitem-iconic');
if(iconURI) {
e.style.listStyleImage = "url('" + iconURI.spec + "')";
}
if(bold) {
e.style.fontWeight = 'bold';
}
popup.appendChild(e);
},
search: function(num) {
var sel = getBrowserSelection();
var ss = SelSearch.getSearchService();
var engines = ss.getVisibleEngines({ });
 
if(num < 0 || num >= engines.length) return;
if(!sel) return;
var submission = engines[num].getSubmission(sel, null); // HTML response
if(!submission) return;
getBrowser().loadOneTab(submission.uri.spec, null, null, submission.postData, null, false);
},
};
 
window.addEventListener('load', SelSearch.init, false);
/firefox/selsearch/trunk/install.rdf
0,0 → 1,24
<?xml version="1.0"?>
 
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
<Description about="urn:mozilla:install-manifest">
<em:id>{58C3BCF4-A9A4-11DD-A2A9-4FD0196F0FEF}</em:id>
<em:version>1.0</em:version>
<em:type>2</em:type>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3</em:minVersion>
<em:maxVersion>3.0.*</em:maxVersion>
</Description>
</em:targetApplication>
<em:name>SelSearch</em:name>
<em:description>Select a search engine to query from the context menu</em:description>
<em:creator>Anatoli Klassen</em:creator>
<em:homepageURL>http://www.26th.net/public/projects/selsearch</em:homepageURL>
</Description>
</RDF>
/firefox/selsearch/trunk/chrome.manifest
0,0 → 1,2
content selsearch chrome/content/
overlay chrome://browser/content/browser.xul chrome://selsearch/content/selsearch.xul