|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
|
2 * vim:expandtab:shiftwidth=2:tabstop=2:cin: |
|
3 * This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 #ifndef __nsLocalHandlerAppImpl_h__ |
|
8 #define __nsLocalHandlerAppImpl_h__ |
|
9 |
|
10 #include "nsString.h" |
|
11 #include "nsIMIMEInfo.h" |
|
12 #include "nsIFile.h" |
|
13 #include "nsTArray.h" |
|
14 |
|
15 class nsLocalHandlerApp : public nsILocalHandlerApp |
|
16 { |
|
17 public: |
|
18 NS_DECL_ISUPPORTS |
|
19 NS_DECL_NSIHANDLERAPP |
|
20 NS_DECL_NSILOCALHANDLERAPP |
|
21 |
|
22 nsLocalHandlerApp() { } |
|
23 |
|
24 nsLocalHandlerApp(const char16_t *aName, nsIFile *aExecutable) |
|
25 : mName(aName), mExecutable(aExecutable) { } |
|
26 |
|
27 nsLocalHandlerApp(const nsAString & aName, nsIFile *aExecutable) |
|
28 : mName(aName), mExecutable(aExecutable) { } |
|
29 virtual ~nsLocalHandlerApp() { } |
|
30 |
|
31 protected: |
|
32 nsString mName; |
|
33 nsString mDetailedDescription; |
|
34 nsTArray<nsString> mParameters; |
|
35 nsCOMPtr<nsIFile> mExecutable; |
|
36 |
|
37 /** |
|
38 * Launches this application with a single argument (typically either |
|
39 * a file path or a URI spec). This is meant as a helper method for |
|
40 * implementations of (e.g.) LaunchWithURI. |
|
41 * |
|
42 * @param aApp The application to launch (may not be null) |
|
43 * @param aArg The argument to pass on the command line |
|
44 */ |
|
45 NS_HIDDEN_(nsresult) LaunchWithIProcess(const nsCString &aArg); |
|
46 }; |
|
47 |
|
48 // any platforms that need a platform-specific class instead of just |
|
49 // using nsLocalHandlerApp need to add an include and a typedef here. |
|
50 #ifdef XP_MACOSX |
|
51 # ifndef NSLOCALHANDLERAPPMAC_H_ |
|
52 # include "mac/nsLocalHandlerAppMac.h" |
|
53 typedef nsLocalHandlerAppMac PlatformLocalHandlerApp_t; |
|
54 # endif |
|
55 #else |
|
56 typedef nsLocalHandlerApp PlatformLocalHandlerApp_t; |
|
57 #endif |
|
58 |
|
59 #endif // __nsLocalHandlerAppImpl_h__ |