1 /****************************************************************************
3 * wxWindows HTML Applet Package
5 * Copyright (C) 1991-2001 SciTech Software, Inc.
8 * ========================================================================
10 * The contents of this file are subject to the wxWindows License
11 * Version 3.0 (the "License"); you may not use this file except in
12 * compliance with the License. You may obtain a copy of the License at
13 * http://www.wxwindows.org/licence3.txt
15 * Software distributed under the License is distributed on an
16 * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
17 * implied. See the License for the specific language governing
18 * rights and limitations under the License.
20 * ========================================================================
25 * Description: Header file for the wxHtmlAppletWindow class
27 ****************************************************************************/
29 #ifndef __WX_APPLET_WINDOW_H
30 #define __WX_APPLET_WINDOW_H
32 #include "wx/html/htmlwin.h"
33 #include "wx/process.h"
38 class wxLoadPageEvent
;
39 class wxPageLoadedEvent
;
43 // Declare a linked list of wxApplet pointers
44 WX_DECLARE_LIST(wxApplet
, wxAppletList
);
46 /*--------------------------- Class Definitions ---------------------------*/
48 /****************************************************************************
50 Defines the class for virtual-link data types
51 ****************************************************************************/
52 class VirtualData
: public wxObject
{
68 wxString
GetName(){ return m_name
;};
69 wxString
GetGroup(){ return m_group
;};
70 wxString
GetHref(){ return m_href
;};
73 void SetName (wxString
& s
){ m_name
= s
; };
74 void SetGroup(wxString
& s
){ m_group
= s
; };
75 void SetHref (wxString
& s
){ m_href
= s
; };
78 /****************************************************************************
80 Defines the class for wxAppletWindow. This class is derived from the
81 wxHtmlWindow class and extends it with functionality to handle embedded
82 wxApplet's on the HTML pages.
83 ****************************************************************************/
84 class wxHtmlAppletWindow
: public wxHtmlWindow
{
86 DECLARE_CLASS(wxHtmlAppletWindow
);
87 DECLARE_EVENT_TABLE();
90 wxIncludePrep
*incPreprocessor
; // deleted by list it is added too in constructor
93 wxAppletList m_AppletList
;
94 static wxHashTable m_Cookies
;
96 wxToolBarBase
*m_NavBar
;
99 wxPalette m_globalPalette
;
101 // Override this so we can do proper palette management!!
102 virtual void OnDraw(wxDC
& dc
);
109 wxToolBarBase
*navBar
= NULL
,
111 int navForwardId
= -1,
112 const wxPoint
& pos
= wxDefaultPosition
,
113 const wxSize
& size
= wxDefaultSize
,
114 long style
= wxHW_SCROLLBAR_AUTO
,
115 const wxString
& name
= "htmlAppletWindow",
116 const wxPalette
& globalPalette
= wxNullPalette
);
119 ~wxHtmlAppletWindow();
121 // Create an instance of an applet based on it's class name
122 wxApplet
*CreateApplet(
123 const wxString
& classId
,
124 const wxString
& iName
,
125 const wxHtmlTag
¶ms
,
128 // Create an instance of an Qlet based on it's class name
129 bool CreatePlugIn(const wxString
& classId
);
131 // Find an instance of an applet based on it's class name
132 wxApplet
*FindApplet(const wxString
& className
);
134 // Remove an applet from the window. Called during applet destruction
135 bool RemoveApplet(const wxApplet
*applet
);
137 // Load a new URL page
138 virtual bool LoadPage(const wxString
& location
);
140 // Called when users clicked on hypertext link.
141 virtual void OnLinkClicked(const wxHtmlLinkInfo
& link
);
143 // Handles forward navigation within the HTML stack
144 bool HistoryForward();
146 // Handles backwards navigation within the HTML stack
150 void DisableNavBar();
155 void SetNavBar(wxToolBarBase
*navBar
);
157 // Broadcast a message to all applets on the page
158 void SendMessage(wxEvent
& msg
);
160 // Register a cookie of data in the applet manager
161 static bool RegisterCookie(const wxString
& name
,wxObject
*cookie
);
163 // UnRegister a cookie of data in the applet manager
164 static bool UnRegisterCookie(const wxString
& name
);
166 // Find a cookie of data given it's public name
167 static wxObject
*FindCookie(const wxString
& name
);
169 // Event handlers to load a new page
170 void OnLoadPage(wxLoadPageEvent
&event
);
172 // Event handlers to load a new page
173 void OnPageLoaded(wxPageLoadedEvent
&event
);
175 // LoadPage mutex locks
176 void Lock(){ m_mutexLock
= true;};
177 void UnLock(){ m_mutexLock
= false;};
179 // Returns TRUE if the mutex is locked, FALSE otherwise.
180 bool IsLocked(){ return m_mutexLock
;};
182 // Tries to lock the mutex. If it can't, returns immediately with false.
187 /****************************************************************************
189 Defines the class for AppetProcess
190 ***************************************************************************/
191 class AppletProcess
: public wxProcess
{
199 // instead of overriding this virtual function we might as well process the
200 // event from it in the frame class - this might be more convenient in some
202 virtual void OnTerminate(int pid
, int status
);
206 /****************************************************************************
208 Defines the class for wxHtmlAppletCell
209 ***************************************************************************/
210 class wxHtmlAppletCell
: public wxHtmlCell
213 wxHtmlAppletCell(wxWindow
*wnd
, int w
= 0);
214 ~wxHtmlAppletCell() { m_Wnd
->Destroy(); }
215 virtual void Draw(wxDC
& dc
, int x
, int y
, int view_y1
, int view_y2
);
216 virtual void DrawInvisible(wxDC
& dc
, int x
, int y
);
217 virtual void Layout(int w
);
221 // width float is used in adjustWidth (it is in percents)
225 #endif // __WX_APPLET_WINDOW_H