Expose PDF information in hit test result
[WebKit-https.git] / Source / WebKit2 / Shared / WebHitTestResult.h
1 /*
2  * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)
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 #ifndef WebHitTestResult_h
21 #define WebHitTestResult_h
22
23 #include "APIObject.h"
24 #include <WebCore/HitTestResult.h>
25 #include <WebCore/KURL.h>
26 #include <wtf/Forward.h>
27 #include <wtf/PassRefPtr.h>
28 #include <wtf/RefPtr.h>
29 #include <wtf/text/WTFString.h>
30
31 namespace CoreIPC {
32 class ArgumentDecoder;
33 class ArgumentEncoder;
34 }
35
36 namespace WebKit {
37
38 class WebFrame;
39
40 class WebHitTestResult : public APIObject {
41 public:
42     static const Type APIType = TypeHitTestResult;
43
44     struct Data {
45         String absoluteImageURL;
46         String absolutePDFURL;
47         String absoluteLinkURL;
48         String absoluteMediaURL;
49         String linkLabel;
50         String linkTitle;
51
52         void encode(CoreIPC::ArgumentEncoder*) const;
53         static bool decode(CoreIPC::ArgumentDecoder*, WebHitTestResult::Data&);
54     };
55
56     static PassRefPtr<WebHitTestResult> create(const WebHitTestResult::Data&);
57
58     String absoluteImageURL() const { return m_data.absoluteImageURL; }
59     String absolutePDFURL() const { return m_data.absolutePDFURL; }
60     String absoluteLinkURL() const { return m_data.absoluteLinkURL; }
61     String absoluteMediaURL() const { return m_data.absoluteMediaURL; }
62
63     String linkLabel() const { return m_data.linkLabel; }
64     String linkTitle() const { return m_data.linkTitle; }
65
66 private:
67     explicit WebHitTestResult(const WebHitTestResult::Data& hitTestResultData)
68         : m_data(hitTestResultData)
69     {
70     }
71
72     virtual Type type() const { return APIType; }
73
74     Data m_data;
75 };
76
77 } // namespace WebKit
78
79 #endif // WebHitTestResult_h