NsIFilePicker: Difference between revisions

From MozillaZine Knowledge Base
Jump to navigationJump to search
mNo edit summary
Line 9: Line 9:
var fp = Components.classes["@mozilla.org/filepicker;1"]
var fp = Components.classes["@mozilla.org/filepicker;1"]
.createInstance(nsIFilePicker);
.createInstance(nsIFilePicker);
fp.init(window, "Dialog Title", nsIFilePicker.modeOpen);
fp.init(windowHandle, "Dialog Title", nsIFilePicker.modeOpen);
fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText);
fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText);


Line 17: Line 17:
   var file = fp.file;
   var file = fp.file;
   // work with returned nsILocalFile...
   // work with returned nsILocalFile...
}</pre>
}
 
// to get a simple windowHandle you may use .. (returns the any most recent one)
 
  const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";
  const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
  const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);
  var windowHandle = kWindowMediator.getMostRecentWindow(null);
 
</pre>


==Notes==
==Notes==

Revision as of 19:00, 27 April 2005

This page is part of the extension development documentation project.

Ask your questions in MozillaZine Forums. Also try browsing example code.

Note: development documentation is in process of being moved to Mozilla Development Center (MDC).

Using nsIFilePicker

const nsIFilePicker = Components.interfaces.nsIFilePicker;

var fp = Components.classes["@mozilla.org/filepicker;1"]
	.createInstance(nsIFilePicker);
fp.init(windowHandle, "Dialog Title", nsIFilePicker.modeOpen);
fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText);

var rv = fp.show();
if (rv == nsIFilePicker.returnOK)
{
  var file = fp.file;
  // work with returned nsILocalFile...
}

// to get a simple windowHandle you may use .. (returns the any most recent one)

  const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";
  const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
  const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);
  var windowHandle = kWindowMediator.getMostRecentWindow(null);

Notes

  • If you pass empty string as dialog title, the dialog will have default title
  • When checking return value for Save dialog, be sure to check for nsIFilePicker.returnReplace too.
  • Available modes: modeOpen, modeSave, modeGetFolder, modeOpenMultiple.
  • Available filters: filterAll, filterHTML, filterText, filterImages, filterXML, filterXUL, filterApps.

References