Remove remaining PLATFORM(CHROMIUM)-guarded code in WebCore
[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/PassRefPtr.h>
25 #include <wtf/RefCounted.h>
26 #include <wtf/Forward.h>
27 #include <wtf/Vector.h>
28
29 #if PLATFORM(MAC)
30 #include <wtf/RetainPtr.h>
31 OBJC_CLASS NSImage;
32 #elif PLATFORM(WIN)
33 typedef struct HICON__* HICON;
34 #elif PLATFORM(QT)
35 #include <QIcon>
36 #elif PLATFORM(GTK)
37 typedef struct _GdkPixbuf GdkPixbuf;
38 #endif
39
40 namespace WebCore {
41
42 class GraphicsContext;
43 class IntRect;
44     
45 class Icon : public RefCounted<Icon> {
46 public:
47     static PassRefPtr<Icon> createIconForFiles(const Vector<String>& filenames);
48
49     ~Icon();
50
51     void paint(GraphicsContext*, const IntRect&);
52
53 #if PLATFORM(WIN)
54     static PassRefPtr<Icon> create(HICON hIcon) { return adoptRef(new Icon(hIcon)); }
55 #endif
56
57 private:
58 #if PLATFORM(MAC)
59     Icon(NSImage*);
60     RetainPtr<NSImage> m_nsImage;
61 #elif PLATFORM(WIN)
62     Icon(HICON);
63     HICON m_hIcon;
64 #elif PLATFORM(QT)
65     Icon();
66     QIcon m_icon;
67 #elif PLATFORM(GTK)
68     Icon();
69     GdkPixbuf* m_icon;
70 #elif PLATFORM(EFL)
71     Icon();
72     Evas_Object* m_icon;
73 #endif
74 };
75
76 }
77
78 #endif