LeechCraft
%{LEECHCRAFT_VERSION}
Modular cross-platform feature rich live environment.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
itexteditor.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2013 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 <QPair>
33
#include <QList>
34
#include <QRegExp>
35
36
class
QWidget;
37
class
QString;
38
class
QAction;
39
class
QColor;
40
41
namespace
LeechCraft
42
{
45
enum class
ContentType
46
{
50
HTML
,
51
54
PlainText
55
};
56
59
enum class
EditorAction
60
{
61
Find
,
62
Replace
63
};
64
}
65
82
class
Q_DECL_EXPORT
IEditorWidget
83
{
84
public
:
85
virtual
~IEditorWidget
() {}
86
102
virtual
QString GetContents (
LeechCraft::ContentType
type)
const
= 0;
103
124
virtual
void
SetContents (
const
QString& contents,
LeechCraft::ContentType
type) = 0;
125
134
virtual
QAction* GetEditorAction (
LeechCraft::EditorAction
action) = 0;
135
146
virtual
void
AppendAction (QAction *action) = 0;
147
148
virtual
void
AppendSeparator () = 0;
149
159
virtual
void
RemoveAction (QAction *action) = 0;
160
165
virtual
void
SetBackgroundColor (
const
QColor& color) = 0;
166
protected
:
172
virtual
void
textChanged () = 0;
173
};
174
194
class
Q_DECL_EXPORT
IAdvancedHTMLEditor
195
{
196
public
:
197
virtual
~IAdvancedHTMLEditor
() {}
198
199
typedef
QPair<QRegExp, QString>
Replacement_t
;
200
typedef
QList<Replacement_t>
Replacements_t
;
201
209
virtual
void
InsertHTML (
const
QString& html) = 0;
210
221
virtual
void
SetTagsMappings (
const
Replacements_t
& rich2html,
const
Replacements_t
& html2rich) = 0;
222
227
virtual
void
ExecJS (
const
QString& js) = 0;
228
};
229
239
class
Q_DECL_EXPORT
ITextEditor
240
{
241
public
:
242
virtual
~ITextEditor
() {}
243
253
virtual
bool
SupportsEditor (
LeechCraft::ContentType
type)
const
= 0;
254
269
virtual
QWidget* GetTextEditor (
LeechCraft::ContentType
type) = 0;
270
};
271
272
Q_DECLARE_INTERFACE
(
IEditorWidget
,
"org.Deviant.LeechCraft.IEditorWidget/1.0"
);
273
Q_DECLARE_INTERFACE
(
IAdvancedHTMLEditor
,
"org.Deviant.LeechCraft.IAdvancedHTMLEditor/1.0"
);
274
Q_DECLARE_INTERFACE
(
ITextEditor
,
"org.Deviant.LeechCraft.ITextEditor/1.0"
);
IAdvancedHTMLEditor::Replacement_t
QPair< QRegExp, QString > Replacement_t
Definition:
itexteditor.h:199
IAdvancedHTMLEditor::~IAdvancedHTMLEditor
virtual ~IAdvancedHTMLEditor()
Definition:
itexteditor.h:197
IAdvancedHTMLEditor::Replacements_t
QList< Replacement_t > Replacements_t
Definition:
itexteditor.h:200
LeechCraft::EditorAction::Find
ITextEditor::~ITextEditor
virtual ~ITextEditor()
Definition:
itexteditor.h:242
IEditorWidget
Interface to be implemented by editor widgets returned from ITextEditor::GetTextEditor().
Definition:
itexteditor.h:82
LeechCraft::ContentType::PlainText
Q_DECLARE_INTERFACE
Q_DECLARE_INTERFACE(IColorThemeManager,"org.Deviant.LeechCraft.IColorThemeManager/1.0")
LeechCraft::EditorAction
EditorAction
Definition:
itexteditor.h:59
LeechCraft::ContentType::HTML
LeechCraft::EditorAction::Replace
ITextEditor
Interface for plugins implementing a text editor component.
Definition:
itexteditor.h:239
IEditorWidget::~IEditorWidget
virtual ~IEditorWidget()
Definition:
itexteditor.h:85
IAdvancedHTMLEditor
Interface for HTML/WYSIWYG editors with some advanced functionality.
Definition:
itexteditor.h:194
LeechCraft::ContentType
ContentType
Definition:
itexteditor.h:45
src
interfaces
itexteditor.h
Generated by
1.8.5