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
|
/*
* Copyright (C) 2000 Marco Pesenti Gritti
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef EPHY_WRAPPER_H
#define EPHY_WRAPPER_H
#include "nsIDocShell.h"
#include "ProgressListener.h"
#include "nsIWebNavigation.h"
#include "nsIWebPageDescriptor.h"
#include "nsISHistory.h"
#include "nsIWebBrowser.h"
#include "nsIWebProgressListener.h"
#include "nsCOMPtr.h"
#include "nsIDOMEventReceiver.h"
#include "nsIDOMDocument.h"
#include "nsPIDOMWindow.h"
#include <gtkmozembed.h>
#include "nsIPrintSettings.h"
class EphyEventListener;
class EphyWrapper
{
public:
EphyWrapper();
~EphyWrapper();
nsresult Init (GtkMozEmbed *mozembed);
nsresult Destroy (void);
nsresult SetZoom (float aTextZoom, PRBool reflow);
nsresult GetZoom (float *aTextZoom);
nsresult Print (nsIPrintSettings *options, PRBool preview);
nsresult GetPrintSettings (nsIPrintSettings * *options);
nsresult PrintPreviewClose (void);
nsresult PrintPreviewNumPages (int *numPages);
nsresult PrintPreviewNavigate(PRInt16 navType, PRInt32 pageNum);
nsresult Find (const PRUnichar *search_string,
PRBool matchcase, PRBool interactive,
PRBool search_backwards, PRBool search_wrap_around,
PRBool search_for_entire_word, PRBool search_in_frames,
PRBool *didFind);
nsresult GetMainDocumentUrl (nsCString &url);
nsresult GetDocumentUrl (nsCString &url);
nsresult ReloadDocument ();
nsresult LoadDocument(nsISupports *aPageDescriptor, PRUint32 aDisplayType);
nsresult GetPageDescriptor(nsISupports **aPageDescriptor);
nsresult GetSHInfo (PRInt32 *count, PRInt32 *index);
nsresult GetSHTitleAtIndex (PRInt32 index, PRUnichar **title);
nsresult GetSHUrlAtIndex (PRInt32 index, nsCString &url);
nsresult CopyHistoryTo (EphyWrapper *embed);
nsresult GoToHistoryIndex (PRInt16 index);
nsresult ForceEncoding (const char *encoding);
nsresult CanCutSelection(PRBool *result);
nsresult CanCopySelection(PRBool *result);
nsresult CanPaste(PRBool *result);
nsresult CutSelection(void);
nsresult CopySelection(void);
nsresult Paste(void);
nsresult Activate ();
nsresult Deactivate ();
nsresult GetMainDOMDocument (nsIDOMDocument **aDOMDocument);
nsresult SelectAll (void);
nsresult PushTargetDocument (nsIDOMDocument *domDoc);
nsresult PopTargetDocument ();
nsresult GetDOMDocument (nsIDOMDocument **aDOMDocument);
nsresult GetDOMWindow (nsIDOMWindow **aDOMWindow);
nsCOMPtr<nsIWebBrowser> mWebBrowser;
nsCOMPtr<nsIWebNavigation> mChromeNav;
GtkMozEmbed *mGtkMozEmbed;
private:
nsCOMPtr<nsIDOMDocument> mTargetDocument;
nsCOMPtr<nsIWebProgressListener> mProgress;
nsCOMPtr<nsIDOMEventReceiver> mEventReceiver;
EphyEventListener *mEventListener;
nsresult GetListener (void);
nsresult AttachListeners (void);
nsresult DetachListeners (void);
nsresult SetZoomOnDocshell (float aZoom, nsIDocShell *DocShell);
nsresult GetDocShell (nsIDocShell **aDocShell);
nsresult GetCSSBackground (nsIDOMNode *node, nsAutoString& url);
nsresult GetFocusedDOMWindow (nsIDOMWindow **aDOMWindow);
nsresult GetSHistory (nsISHistory **aSHistory);
nsresult GetPIDOMWindow(nsPIDOMWindow **aPIWin);
nsresult GetWebNavigation(nsIWebNavigation **aWebNavigation);
};
#endif
|