Menu

[r111]: / trunk / Src / FrHTMLPreview.pas  Maximize  Restore  History

Download this file

133 lines (110 with data), 4.1 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{
* FrHTMLPreview.pas
*
* Frame used to display previews of HTML documents.
*
* v0.1 of 17 Feb 2005 - Original version.
* v1.0 of 24 May 2006 - Improved and corrected comments.
* v1.1 of 07 Nov 2006 - Changed to use TCSSBuilder to build body CSS rather
* than using a hard-wired literal string.
* v1.2 of 13 May 2007 - Changed to use an 8px rather than 1px margin (old
* BodyCSS method was replaced by BuildCSS override since
* BodyCSS failed to set old 1px margin).
* - Removed redundant constructor.
* - Added support for selection and copying and assigning
* pop-up menu.
* v1.3 of 05 Nov 2007 - Changed to use revised CSS builder classes.
* v1.4 of 17 Jun 2009 - Changed to implement revised IPreview.Display method
* that gets HTML document title.
* - Made a protected section strict.
*
*
* ***** BEGIN LICENSE BLOCK *****
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The Original Code is FrHTMLPreview.pas
*
* The Initial Developer of the Original Code is Peter Johnson
* (http://www.delphidabbler.com/).
*
* Portions created by the Initial Developer are Copyright (C) 2005-2009 Peter
* Johnson. All Rights Reserved.
*
* ***** END LICENSE BLOCK *****
}
unit FrHTMLPreview;
interface
uses
// Delphi
OleCtrls, SHDocVw, Classes, Controls, ExtCtrls, Menus,
// Project
FrBrowserBase, IntfFrameMgrs, IntfPreview, UCSSBuilder;
type
{
THTMLPreviewFrame:
Frame used to display previews of HTML documents.
}
THTMLPreviewFrame = class(TBrowserBaseFrame,
IPreview, IClipboardMgr, ISelectionMgr
)
strict protected
procedure BuildCSS(const CSSBuilder: TCSSBuilder); override;
{Adds body margin to default style sheet.
@param CSSBuilder [in] Object used to construct the CSS.
}
protected // do not make strict
{ IPreview }
procedure Display(const DocContent: string; out Title: string);
{Displays document in preview dialog box.
@param DocContent [in] Content of document to be displayed.
@param Title [out] Title of document, if any.
}
procedure SetPopupMenu(const Menu: TPopupMenu);
{Sets pop up menu to be displayed when browser control is right clicked.
@param Menu [in] Required popup menu.
}
{ IClipboardMgr: Implemented in base class }
{ ISelectionMgr: Implemented in base class }
end;
implementation
uses
// Project
UCSSUtils, UHTMLDocHelper;
{$R *.dfm}
{ THTMLPreviewFrame }
procedure THTMLPreviewFrame.BuildCSS(const CSSBuilder: TCSSBuilder);
{Adds body margin to default style sheet.
@param CSSBuilder [in] Object used to construct the CSS.
}
begin
inherited;
with CSSBuilder.AddSelector('body') do
AddProperty(CSSMarginProp(8));
end;
procedure THTMLPreviewFrame.Display(const DocContent: string;
out Title: string);
{Displays document in preview dialog box.
@param DocContent [in] Content of document to be displayed.
@param Title [out] Title of document, if any.
}
begin
WBController.IOMgr.LoadFromString(DocContent);
Title := THTMLDocHelper.GetDocTitle(wbBrowser.Document);
end;
procedure THTMLPreviewFrame.SetPopupMenu(const Menu: TPopupMenu);
{Sets pop up menu to be displayed when browser control is right clicked.
@param Menu [in] Required popup menu.
}
begin
WBController.UIMgr.PopupMenu := Menu;
end;
end.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.