1 /****************************************************************************
3 * wxWindows HTML Applet Package
5 * Copyright (C) 1991-2001 SciTech Software, Inc.
8 * ======================================================================
9 * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
11 * |This copyrighted computer code is a proprietary trade secret of |
12 * |SciTech Software, Inc., located at 505 Wall Street, Chico, CA 95928 |
13 * |USA (www.scitechsoft.com). ANY UNAUTHORIZED POSSESSION, USE, |
14 * |VIEWING, COPYING, MODIFICATION OR DISSEMINATION OF THIS CODE IS |
15 * |STRICTLY PROHIBITED BY LAW. Unless you have current, express |
16 * |written authorization from SciTech to possess or use this code, you |
17 * |may be subject to civil and/or criminal penalties. |
19 * |If you received this code in error or you would like to report |
20 * |improper use, please immediately contact SciTech Software, Inc. at |
23 * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
24 * ======================================================================
29 * Description: Header file for the wxHtmlAppletWindow class
31 ****************************************************************************/
33 #ifndef __WX_APPLET_WINDOW_H
34 #define __WX_APPLET_WINDOW_H
36 #include "wx/html/htmlwin.h"
37 #include "wx/process.h"
42 class wxLoadPageEvent
;
43 class wxPageLoadedEvent
;
47 // Declare a linked list of wxApplet pointers
48 WX_DECLARE_LIST(wxApplet
, wxAppletList
);
50 /*--------------------------- Class Definitions ---------------------------*/
52 /****************************************************************************
54 Defines the class for virtual-link data types
55 ****************************************************************************/
56 class VirtualData
: public wxObject
{
70 wxString
GetName(){ return m_name
;};
71 wxString
GetGroup(){ return m_group
;};
72 wxString
GetHref(){ return m_href
;};
75 void SetName (wxString
& s
){ m_name
= s
; };
76 void SetGroup(wxString
& s
){ m_group
= s
; };
77 void SetHref (wxString
& s
){ m_href
= s
; };
80 /****************************************************************************
82 Defines the class for wxAppletWindow. This class is derived from the
83 wxHtmlWindow class and extends it with functionality to handle embedded
84 wxApplet's on the HTML pages.
85 ****************************************************************************/
86 class wxHtmlAppletWindow
: public wxHtmlWindow
{
88 DECLARE_CLASS(wxHtmlAppletWindow
);
89 DECLARE_EVENT_TABLE();
92 wxIncludePrep
*incPreprocessor
; // deleted by list it is added too in constructor
94 wxAppletList m_AppletList
;
95 static wxHashTable m_Cookies
;
96 wxToolBarBase
*m_NavBar
;
105 wxToolBarBase
*navBar
= NULL
,
107 int navForwardId
= -1,
108 const wxPoint
& pos
= wxDefaultPosition
,
109 const wxSize
& size
= wxDefaultSize
,
110 long style
= wxHW_SCROLLBAR_AUTO
,
111 const wxString
& name
= "htmlAppletWindow",
112 const wxString
& docroot
= "" );
115 ~wxHtmlAppletWindow();
117 // Create an instance of an applet based on it's class name
118 wxApplet
*CreateApplet(
119 const wxString
& classId
,
120 const wxString
& iName
,
121 const wxHtmlTag
¶ms
,
124 // Create an instance of an Qlet based on it's class name
125 bool CreatePlugIn(const wxString
& classId
);
127 // Find an instance of an applet based on it's class name
128 wxApplet
*FindApplet(const wxString
& className
);
130 // Remove an applet from the window. Called during applet destruction
131 bool RemoveApplet(const wxApplet
*applet
);
133 // Load a new URL page
134 virtual bool LoadPage(const wxString
& location
);
136 // Called when users clicked on hypertext link.
137 virtual void OnLinkClicked(const wxHtmlLinkInfo
& link
);
139 // Handles forward navigation within the HTML stack
140 bool HistoryForward();
142 // Handles backwards navigation within the HTML stack
145 // Broadcast a message to all applets on the page
146 void SendMessage(wxEvent
& msg
);
148 // Register a cookie of data in the applet manager
149 static bool RegisterCookie(const wxString
& name
,wxObject
*cookie
);
151 // UnRegister a cookie of data in the applet manager
152 static bool UnRegisterCookie(const wxString
& name
);
154 // Find a cookie of data given it's public name
155 static wxObject
*FindCookie(const wxString
& name
);
157 // Event handlers to load a new page
158 void OnLoadPage(wxLoadPageEvent
&event
);
160 // Event handlers to load a new page
161 void OnPageLoaded(wxPageLoadedEvent
&event
);
163 // LoadPage mutex locks
164 void Lock(){ m_mutexLock
= true;};
165 void UnLock(){ m_mutexLock
= false;};
167 // Returns TRUE if the mutex is locked, FALSE otherwise.
168 bool IsLocked(){ return m_mutexLock
;};
170 // Tries to lock the mutex. If it can't, returns immediately with false.
175 /****************************************************************************
177 Defines the class for AppetProcess
178 ***************************************************************************/
179 class AppletProcess
: public wxProcess
{
187 // instead of overriding this virtual function we might as well process the
188 // event from it in the frame class - this might be more convenient in some
190 virtual void OnTerminate(int pid
, int status
);
194 /****************************************************************************
196 Defines the class for wxHtmlAppletCell
197 ***************************************************************************/
198 class wxHtmlAppletCell
: public wxHtmlCell
201 wxHtmlAppletCell(wxWindow
*wnd
, int w
= 0);
202 ~wxHtmlAppletCell() { m_Wnd
->Destroy(); }
203 virtual void Draw(wxDC
& dc
, int x
, int y
, int view_y1
, int view_y2
);
204 virtual void DrawInvisible(wxDC
& dc
, int x
, int y
);
205 virtual void Layout(int w
);
209 // width float is used in adjustWidth (it is in percents)
213 #endif // __WX_APPLET_WINDOW_H