Line data Source code
1 : /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 : *
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 mozilla_image_decoders_icon_nsIconURI_h
8 : #define mozilla_image_decoders_icon_nsIconURI_h
9 :
10 : #include "nsIIconURI.h"
11 : #include "nsCOMPtr.h"
12 : #include "nsString.h"
13 : #include "nsIIPCSerializableURI.h"
14 : #include "nsINestedURI.h"
15 :
16 : class nsMozIconURI : public nsIMozIconURI
17 : , public nsIIPCSerializableURI
18 : {
19 : public:
20 : NS_DECL_THREADSAFE_ISUPPORTS
21 : NS_DECL_NSIURI
22 : NS_DECL_NSIMOZICONURI
23 : NS_DECL_NSIIPCSERIALIZABLEURI
24 :
25 : // nsMozIconURI
26 : nsMozIconURI();
27 :
28 : protected:
29 : virtual ~nsMozIconURI();
30 : nsCOMPtr<nsIURL> mIconURL; // a URL that we want the icon for
31 : uint32_t mSize; // the # of pixels in a row that we want for this image.
32 : // Typically 16, 32, 128, etc.
33 : nsCString mContentType; // optional field explicitly specifying the content
34 : // type
35 : nsCString mFileName; // for if we don't have an actual file path, we're just
36 : // given a filename with an extension
37 : nsCString mStockIcon;
38 : int32_t mIconSize; // -1 if not specified, otherwise index into
39 : // kSizeStrings
40 : int32_t mIconState; // -1 if not specified, otherwise index into
41 : // kStateStrings
42 : };
43 :
44 : // For moz-icon URIs that point to an actual file on disk and are
45 : // therefore nested URIs
46 : class nsNestedMozIconURI final : public nsMozIconURI
47 : , public nsINestedURI
48 : {
49 : NS_DECL_ISUPPORTS_INHERITED
50 0 : NS_FORWARD_NSIURI(nsMozIconURI::)
51 0 : NS_FORWARD_NSIMOZICONURI(nsMozIconURI::)
52 0 : NS_FORWARD_NSIIPCSERIALIZABLEURI(nsMozIconURI::)
53 :
54 : NS_DECL_NSINESTEDURI
55 :
56 : nsNestedMozIconURI();
57 :
58 : protected:
59 : virtual ~nsNestedMozIconURI();
60 :
61 : };
62 :
63 : #endif // mozilla_image_decoders_icon_nsIconURI_h
|