]> git.saurik.com Git - wxWidgets.git/blame_incremental - contrib/include/wx/applet/window.h
compilation fix
[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*
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
14*
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.
19*
20* ========================================================================
21*
22* Language: ANSI C++
23* Environment: Any
24*
25* Description: Header file for the wxHtmlAppletWindow class
26*
27****************************************************************************/
28
29#ifndef __WX_APPLET_WINDOW_H
30#define __WX_APPLET_WINDOW_H
31
32#include "wx/html/htmlwin.h"
33#include "wx/process.h"
34
35// Forward declare
36class wxApplet;
37class wxQlet;
38class wxLoadPageEvent;
39class wxPageLoadedEvent;
40class wxIncludePrep;
41class wxToolBarBase;
42
43// Declare a linked list of wxApplet pointers
44WX_DECLARE_LIST(wxApplet, wxAppletList);
45
46/*--------------------------- Class Definitions ---------------------------*/
47
48/****************************************************************************
49REMARKS:
50Defines the class for virtual-link data types
51****************************************************************************/
52class VirtualData : public wxObject {
53private:
54 wxString m_name;
55 wxString m_group;
56 wxString m_href;
57
58public:
59 // Ctors
60 VirtualData(
61 wxString& name,
62 wxString& group,
63 wxString& href );
64
65 VirtualData();
66
67 // Gets
68 wxString GetName(){ return m_name;};
69 wxString GetGroup(){ return m_group;};
70 wxString GetHref(){ return m_href;};
71
72 // Sets
73 void SetName (wxString& s){ m_name = s; };
74 void SetGroup(wxString& s){ m_group = s; };
75 void SetHref (wxString& s){ m_href = s; };
76 };
77
78/****************************************************************************
79REMARKS:
80Defines the class for wxAppletWindow. This class is derived from the
81wxHtmlWindow class and extends it with functionality to handle embedded
82wxApplet's on the HTML pages.
83****************************************************************************/
84class wxHtmlAppletWindow : public wxHtmlWindow {
85private:
86 DECLARE_CLASS(wxHtmlAppletWindow);
87 DECLARE_EVENT_TABLE();
88
89 bool m_mutexLock;
90 wxIncludePrep *incPreprocessor; // deleted by list it is added too in constructor
91
92protected:
93 wxAppletList m_AppletList;
94 static wxHashTable m_Cookies;
95 bool m_NavBarEnabled;
96 wxToolBarBase *m_NavBar;
97 int m_NavBackId;
98 int m_NavForwardId;
99 wxPalette m_globalPalette;
100
101 // Override this so we can do proper palette management!!
102 virtual void OnDraw(wxDC& dc);
103
104public:
105 // Constructor
106 wxHtmlAppletWindow(
107 wxWindow *parent,
108 wxWindowID id = -1,
109 wxToolBarBase *navBar = NULL,
110 int navBackId = -1,
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);
117
118 // Destructor
119 ~wxHtmlAppletWindow();
120
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 &params,
126 const wxSize& size);
127
128 // Create an instance of an Qlet based on it's class name
129 bool CreatePlugIn(const wxString& classId );
130
131 // Find an instance of an applet based on it's class name
132 wxApplet *FindApplet(const wxString& className);
133
134 // Remove an applet from the window. Called during applet destruction
135 bool RemoveApplet(const wxApplet *applet);
136
137 // Load a new URL page
138 virtual bool LoadPage(const wxString& location);
139
140 // Called when users clicked on hypertext link.
141 virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
142
143 // Handles forward navigation within the HTML stack
144 bool HistoryForward();
145
146 // Handles backwards navigation within the HTML stack
147 bool HistoryBack();
148
149 // Disables Nav bars
150 void DisableNavBar();
151
152 // Enables Nav bars
153 void EnableNavBar();
154
155 void SetNavBar(wxToolBarBase *navBar);
156
157 // Broadcast a message to all applets on the page
158 void SendMessage(wxEvent& msg);
159
160 // Register a cookie of data in the applet manager
161 static bool RegisterCookie(const wxString& name,wxObject *cookie);
162
163 // UnRegister a cookie of data in the applet manager
164 static bool UnRegisterCookie(const wxString& name);
165
166 // Find a cookie of data given it's public name
167 static wxObject *FindCookie(const wxString& name);
168
169 // Event handlers to load a new page
170 void OnLoadPage(wxLoadPageEvent &event);
171
172 // Event handlers to load a new page
173 void OnPageLoaded(wxPageLoadedEvent &event);
174
175 // LoadPage mutex locks
176 void Lock(){ m_mutexLock = true;};
177 void UnLock(){ m_mutexLock = false;};
178
179 // Returns TRUE if the mutex is locked, FALSE otherwise.
180 bool IsLocked(){ return m_mutexLock;};
181
182 // Tries to lock the mutex. If it can't, returns immediately with false.
183 bool TryLock();
184
185 };
186
187/****************************************************************************
188REMARKS:
189Defines the class for AppetProcess
190***************************************************************************/
191class AppletProcess : public wxProcess {
192public:
193 AppletProcess(
194 wxWindow *parent)
195 : wxProcess(parent)
196 {
197 }
198
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
201 // cases
202 virtual void OnTerminate(int pid, int status);
203
204 };
205
206/****************************************************************************
207REMARKS:
208Defines the class for wxHtmlAppletCell
209***************************************************************************/
210class wxHtmlAppletCell : public wxHtmlCell
211{
212public:
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);
218
219protected:
220 wxWindow* m_Wnd;
221 // width float is used in adjustWidth (it is in percents)
222};
223
224
225#endif // __WX_APPLET_WINDOW_H
226