]> git.saurik.com Git - wxWidgets.git/blame_incremental - contrib/include/wx/applet/window.h
formatting changes
[wxWidgets.git] / contrib / include / wx / applet / window.h
... / ...
CommitLineData
1/****************************************************************************
2*
3* wxWindows HTML Applet Package
4*
5* Copyright (C) 1991-2001 SciTech Software, Inc.
6* All rights reserved.
7*
8* ======================================================================
9* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
10* | |
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. |
18* | |
19* |If you received this code in error or you would like to report |
20* |improper use, please immediately contact SciTech Software, Inc. at |
21* |530-894-8400. |
22* | |
23* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
24* ======================================================================
25*
26* Language: ANSI C++
27* Environment: Any
28*
29* Description: Header file for the wxHtmlAppletWindow class
30*
31****************************************************************************/
32
33#ifndef __WX_APPLET_WINDOW_H
34#define __WX_APPLET_WINDOW_H
35
36#include "wx/html/htmlwin.h"
37#include "wx/process.h"
38
39// Forward declare
40class wxApplet;
41class wxQlet;
42class wxLoadPageEvent;
43class wxPageLoadedEvent;
44class wxIncludePrep;
45class wxToolBarBase;
46
47// Declare a linked list of wxApplet pointers
48WX_DECLARE_LIST(wxApplet, wxAppletList);
49
50/*--------------------------- Class Definitions ---------------------------*/
51
52/****************************************************************************
53REMARKS:
54Defines the class for virtual-link data types
55****************************************************************************/
56class VirtualData : public wxObject {
57private:
58 wxString m_name;
59 wxString m_group;
60 wxString m_href;
61
62public:
63 // Ctors
64 VirtualData(
65 wxString& name,
66 wxString& group,
67 wxString& href );
68
69 // Gets
70 wxString GetName(){ return m_name;};
71 wxString GetGroup(){ return m_group;};
72 wxString GetHref(){ return m_href;};
73
74 // Sets
75 void SetName (wxString& s){ m_name = s; };
76 void SetGroup(wxString& s){ m_group = s; };
77 void SetHref (wxString& s){ m_href = s; };
78 };
79
80/****************************************************************************
81REMARKS:
82Defines the class for wxAppletWindow. This class is derived from the
83wxHtmlWindow class and extends it with functionality to handle embedded
84wxApplet's on the HTML pages.
85****************************************************************************/
86class wxHtmlAppletWindow : public wxHtmlWindow {
87private:
88 DECLARE_CLASS(wxHtmlAppletWindow);
89 DECLARE_EVENT_TABLE();
90
91 bool m_mutexLock;
92 wxIncludePrep *incPreprocessor; // deleted by list it is added too in constructor
93protected:
94 wxAppletList m_AppletList;
95 static wxHashTable m_Cookies;
96 wxToolBarBase *m_NavBar;
97 int m_NavBackId;
98 int m_NavForwardId;
99 wxString m_DocRoot;
100public:
101 // Constructor
102 wxHtmlAppletWindow(
103 wxWindow *parent,
104 wxWindowID id = -1,
105 wxToolBarBase *navBar = NULL,
106 int navBackId = -1,
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 = "" );
113
114 // Destructor
115 ~wxHtmlAppletWindow();
116
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 &params,
122 const wxSize& size);
123
124 // Create an instance of an Qlet based on it's class name
125 bool CreatePlugIn(const wxString& classId );
126
127 // Find an instance of an applet based on it's class name
128 wxApplet *FindApplet(const wxString& className);
129
130 // Remove an applet from the window. Called during applet destruction
131 bool RemoveApplet(const wxApplet *applet);
132
133 // Load a new URL page
134 virtual bool LoadPage(const wxString& location);
135
136 // Called when users clicked on hypertext link.
137 virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
138
139 // Handles forward navigation within the HTML stack
140 bool HistoryForward();
141
142 // Handles backwards navigation within the HTML stack
143 bool HistoryBack();
144
145 // Broadcast a message to all applets on the page
146 void SendMessage(wxEvent& msg);
147
148 // Register a cookie of data in the applet manager
149 static bool RegisterCookie(const wxString& name,wxObject *cookie);
150
151 // UnRegister a cookie of data in the applet manager
152 static bool UnRegisterCookie(const wxString& name);
153
154 // Find a cookie of data given it's public name
155 static wxObject *FindCookie(const wxString& name);
156
157 // Event handlers to load a new page
158 void OnLoadPage(wxLoadPageEvent &event);
159
160 // Event handlers to load a new page
161 void OnPageLoaded(wxPageLoadedEvent &event);
162
163 // LoadPage mutex locks
164 void Lock(){ m_mutexLock = true;};
165 void UnLock(){ m_mutexLock = false;};
166
167 // Returns TRUE if the mutex is locked, FALSE otherwise.
168 bool IsLocked(){ return m_mutexLock;};
169
170 // Tries to lock the mutex. If it can't, returns immediately with false.
171 bool TryLock();
172
173 };
174
175/****************************************************************************
176REMARKS:
177Defines the class for AppetProcess
178***************************************************************************/
179class AppletProcess : public wxProcess {
180public:
181 AppletProcess(
182 wxWindow *parent)
183 : wxProcess(parent)
184 {
185 }
186
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
189 // cases
190 virtual void OnTerminate(int pid, int status);
191
192 };
193
194/****************************************************************************
195REMARKS:
196Defines the class for wxHtmlAppletCell
197***************************************************************************/
198class wxHtmlAppletCell : public wxHtmlCell
199{
200public:
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);
206
207protected:
208 wxWindow* m_Wnd;
209 // width float is used in adjustWidth (it is in percents)
210};
211
212
213#endif // __WX_APPLET_WINDOW_H
214