1 // Copyright 2006 Ben Hutchings <ben@decadentplace.org.uk>.
2 // See the file "COPYING" for licence details.
5 #include <nsIComponentManager.h>
6 #include <nsIFactory.h>
8 #include "null_prompt_service.hpp"
9 #include "xpcom_support.hpp"
11 using xpcom_support::check;
15 NS_DEFINE_IID(prompt_service_iid, NS_IPROMPTSERVICE_IID);
17 class null_prompt_service_factory : public nsIFactory
23 NS_IMPL_ISUPPORTS1(null_prompt_service_factory, nsIFactory)
25 NS_IMETHODIMP null_prompt_service_factory::CreateInstance(
26 nsISupports *, const nsIID & iid, void ** result)
28 if (!iid.Equals(prompt_service_iid))
29 return NS_ERROR_NO_INTERFACE;
33 *result = new null_prompt_service;
36 catch (std::bad_alloc &)
38 return NS_ERROR_OUT_OF_MEMORY;
42 NS_IMETHODIMP null_prompt_service_factory::LockFactory(PRBool lock)
44 return NS_ERROR_NOT_IMPLEMENTED;
48 NS_IMPL_ISUPPORTS1(null_prompt_service, nsIPromptService)
50 NS_IMETHODIMP null_prompt_service::Alert(
51 nsIDOMWindow *, const PRUnichar *, const PRUnichar *)
56 NS_IMETHODIMP null_prompt_service::AlertCheck(
57 nsIDOMWindow *, const PRUnichar *, const PRUnichar *, const PRUnichar *,
63 NS_IMETHODIMP null_prompt_service::Confirm(
64 nsIDOMWindow *, const PRUnichar *, const PRUnichar *, PRBool * result)
71 NS_IMETHODIMP null_prompt_service::ConfirmCheck(
72 nsIDOMWindow *, const PRUnichar *, const PRUnichar *,
73 const PRUnichar *, PRBool *, PRBool * result)
80 NS_IMETHODIMP null_prompt_service::ConfirmEx(
81 nsIDOMWindow *, const PRUnichar *, const PRUnichar *,
82 PRUint32 flags, const PRUnichar *, const PRUnichar *, const PRUnichar *,
83 const PRUnichar *, PRBool *, PRInt32 * result)
86 if (flags & BUTTON_POS_1_DEFAULT)
88 else if (flags & BUTTON_POS_2_DEFAULT)
95 NS_IMETHODIMP null_prompt_service::Prompt(
96 nsIDOMWindow *, const PRUnichar *, const PRUnichar *, PRUnichar **,
97 const PRUnichar *, PRBool *, PRBool * result)
104 NS_IMETHODIMP null_prompt_service::PromptUsernameAndPassword(
105 nsIDOMWindow *, const PRUnichar *, const PRUnichar *,
106 PRUnichar **, PRUnichar **, const PRUnichar *, PRBool *, PRBool * result)
113 NS_IMETHODIMP null_prompt_service::PromptPassword(
114 nsIDOMWindow *, const PRUnichar *, const PRUnichar *, PRUnichar **,
115 const PRUnichar *, PRBool *, PRBool * result)
122 NS_IMETHODIMP null_prompt_service::Select(
123 nsIDOMWindow *, const PRUnichar *, const PRUnichar *, PRUint32,
124 const PRUnichar **, PRInt32 *, PRBool * result)
131 void null_prompt_service::install()
133 static const nsCID prompt_service_cid = {
134 0xa2112d6a, 0x0e28, 0x421f,
135 {0xb4, 0x6a, 0x25, 0xc0, 0xb3, 0x8, 0xcb, 0xd0}
137 nsCOMPtr<nsIFactory> prompt_factory(new null_prompt_service_factory);
138 check(nsComponentManager::RegisterFactory(
141 "@mozilla.org/embedcomp/prompt-service;1",
143 PR_TRUE)); // replace existing