Move locale information into FontDescription
[WebKit-https.git] / Source / WebCore / platform / graphics / Icon.h
1 /*
2  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  *
19  */
20
21 #ifndef Icon_h
22 #define Icon_h
23
24 #include <wtf/Forward.h>
25 #include <wtf/PassRefPtr.h>
26 #include <wtf/RefCounted.h>
27 #include <wtf/RetainPtr.h>
28 #include <wtf/Vector.h>
29
30 #if PLATFORM(IOS)
31 #include "NativeImagePtr.h"
32 #include <CoreGraphics/CoreGraphics.h>
33 #elif PLATFORM(MAC)
34 OBJC_CLASS NSImage;
35 #elif PLATFORM(WIN)
36 typedef struct HICON__* HICON;
37 #elif PLATFORM(GTK)
38 typedef struct _GdkPixbuf GdkPixbuf;
39 #endif
40
41 namespace WebCore {
42
43 class GraphicsContext;
44 class FloatRect;
45     
46 class Icon : public RefCounted<Icon> {
47 public:
48     WEBCORE_EXPORT static PassRefPtr<Icon> createIconForFiles(const Vector<String>& filenames);
49
50     WEBCORE_EXPORT ~Icon();
51
52     void paint(GraphicsContext&, const FloatRect&);
53
54 #if PLATFORM(WIN)
55     static PassRefPtr<Icon> create(HICON hIcon) { return adoptRef(new Icon(hIcon)); }
56 #endif
57
58 #if PLATFORM(IOS)
59     // FIXME: Make this work for non-iOS ports and remove the PLATFORM(IOS)-guard.
60     WEBCORE_EXPORT static PassRefPtr<Icon> createIconForImage(NativeImagePtr);
61 #endif
62
63 private:
64 #if PLATFORM(IOS)
65     Icon(CGImageRef);
66     RetainPtr<CGImageRef> m_cgImage;
67 #elif PLATFORM(MAC)
68     Icon(NSImage*);
69     RetainPtr<NSImage> m_nsImage;
70 #elif PLATFORM(WIN)
71     Icon(HICON);
72     HICON m_hIcon;
73 #elif PLATFORM(GTK)
74     Icon();
75     GdkPixbuf* m_icon;
76 #elif PLATFORM(EFL)
77     Icon();
78 #endif
79 };
80
81 }
82
83 #endif