LeechCraft Monocle
0.6.70-6645-gcd10d7e
Modular document viewer for LeechCraft
Main Page
Namespaces
Classes
Files
File List
File Members
ilink.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Boost Software License - Version 1.0 - August 17th, 2003
6
*
7
* Permission is hereby granted, free of charge, to any person or organization
8
* obtaining a copy of the software and accompanying documentation covered by
9
* this license (the "Software") to use, reproduce, display, distribute,
10
* execute, and transmit the Software, and to prepare derivative works of the
11
* Software, and to permit third-parties to whom the Software is furnished to
12
* do so, all subject to the following:
13
*
14
* The copyright notices in the Software and this entire statement, including
15
* the above license grant, this restriction and the following disclaimer,
16
* must be included in all copies of the Software, in whole or in part, and
17
* all derivative works of the Software, unless such copies or derivative
18
* works are solely in the form of machine-executable object code generated by
19
* a source language processor.
20
*
21
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
24
* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
25
* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
26
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
* DEALINGS IN THE SOFTWARE.
28
**********************************************************************/
29
30
#pragma once
31
32
#include <memory>
33
#include <QRectF>
34
#include <QMetaType>
35
36
namespace
LeechCraft
37
{
38
namespace
Monocle
39
{
46
enum class
LinkType
47
{
57
PageLink
,
58
61
URL
,
62
65
Command
,
66
69
OtherLink
70
};
71
78
class
ILink
79
{
80
public
:
83
virtual
~ILink
() {}
84
89
virtual
LinkType
GetLinkType ()
const
= 0;
90
101
virtual
QRectF GetArea ()
const
= 0;
102
108
virtual
void
Execute () = 0;
109
};
110
typedef
std::shared_ptr<ILink>
ILink_ptr
;
111
119
class
IPageLink
120
{
121
public
:
124
virtual
~IPageLink
() {}
125
134
virtual
QString GetDocumentFilename ()
const
= 0;
135
140
virtual
int
GetPageNumber ()
const
= 0;
141
149
virtual
double
NewX ()
const
= 0;
150
158
virtual
double
NewY ()
const
= 0;
159
164
virtual
double
NewZoom ()
const
= 0;
165
};
166
}
167
}
168
169
Q_DECLARE_INTERFACE
(
LeechCraft::Monocle::ILink
,
"org.LeechCraft.Monocle.ILink/1.0"
);
170
Q_DECLARE_INTERFACE
(
LeechCraft::Monocle::IPageLink
,
"org.LeechCraft.Monocle.IPageLink/1.0"
);
LeechCraft::Monocle::ILink_ptr
std::shared_ptr< ILink > ILink_ptr
Definition:
ilink.h:110
LeechCraft::Monocle::ILink
Base interface for links.
Definition:
ilink.h:78
LeechCraft::Monocle::IPageLink::~IPageLink
virtual ~IPageLink()
Virtual destructor.
Definition:
ilink.h:124
LeechCraft
Definition:
iannotation.h:41
Q_DECLARE_INTERFACE
Q_DECLARE_INTERFACE(LeechCraft::Monocle::ILink,"org.LeechCraft.Monocle.ILink/1.0")
LeechCraft::Monocle::LinkType::Command
Some standard command like printing.
LeechCraft::Monocle::IPageLink
Additional interface for page links.
Definition:
ilink.h:119
LeechCraft::Monocle::LinkType
LinkType
Describes various link types known to Monocle.
Definition:
ilink.h:46
LeechCraft::Monocle::LinkType::OtherLink
Other link type.
LeechCraft::Monocle::LinkType::PageLink
A link to a page.
LeechCraft::Monocle::ILink::~ILink
virtual ~ILink()
Virtual destructor.
Definition:
ilink.h:83
LeechCraft::Monocle::LinkType::URL
A link to an URL.
src
plugins
monocle
interfaces
monocle
ilink.h
Generated by
1.8.11