]> git.saurik.com Git - wxWidgets.git/blame_incremental - contrib/include/wx/applet/window.h
added wxStaticCast, moved wxConstCast from wx/object.h to wx/defs.h for consistency
[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/hash.h"
34#include "wx/process.h"
35#include "wx/toolbar.h"
36
37// Forward declare
38class wxApplet;
39class wxQlet;
40class wxLoadPageEvent;
41class wxPageLoadedEvent;
42class wxIncludePrep;
43class wxToolBarBase;
44
45// Declare a linked list of wxApplet pointers
46WX_DECLARE_LIST(wxApplet, wxAppletList);
47
48/*--------------------------- Class Definitions ---------------------------*/
49class wxAppletEvent {
50protected:
51 int m_id;
52 wxObject *m_eventObject;
53public:
54 wxAppletEvent(int id) { m_eventObject=NULL; m_id = id; }
55
56 int GetId() const { return m_id; }
57 void SetId(int Id) { m_id = Id; }
58
59 wxObject *GetEventObject() const { return m_eventObject; }
60 void SetEventObject(wxObject *obj) { m_eventObject = obj; }
61
62};
63
64
65/****************************************************************************
66REMARKS:
67Defines the class for virtual-link data types
68****************************************************************************/
69class VirtualData : public wxObject {
70private:
71 DECLARE_DYNAMIC_CLASS(VirtualData);
72
73protected:
74 wxString m_name;
75 wxString m_group;
76 wxString m_href;
77 wxString m_plugIn;
78
79public:
80 // Ctors
81 VirtualData(
82 wxString& name,
83 wxString& group,
84 wxString& href,
85 wxString& plugin );
86
87 VirtualData();
88
89 // Gets
90 wxString GetName(){ return m_name;};
91 wxString GetGroup(){ return m_group;};
92 wxString GetHref(){ return m_href;};
93 wxString GetPlugIn(){ return m_plugIn;};
94
95 // Sets
96 void SetName (wxString& s){ m_name = s; };
97 void SetGroup(wxString& s){ m_group = s; };
98 void SetHref (wxString& s){ m_href = s; };
99 void SetPlugIn (wxString& s){ m_plugIn = s;};
100 void EmptyPlugIn () { m_plugIn = "";};
101 };
102
103/****************************************************************************
104REMARKS:
105Defines the class for wxAppletWindow. This class is derived from the
106wxHtmlWindow class and extends it with functionality to handle embedded
107wxApplet's on the HTML pages.
108****************************************************************************/
109class wxHtmlAppletWindow : public wxHtmlWindow {
110private:
111 DECLARE_CLASS(wxHtmlAppletWindow);
112 DECLARE_EVENT_TABLE();
113
114 bool m_mutexLock;
115 wxIncludePrep *incPreprocessor; // deleted by list it is added too in constructor
116
117protected:
118 wxAppletList m_AppletList;
119 static wxHashTable m_Cookies;
120 bool m_NavBarEnabled;
121 wxToolBarBase *m_NavBar;
122 int m_NavBackId;
123 int m_NavForwardId;
124 wxString m_openedlast;
125
126 // Override this so we can do proper palette management!!
127 virtual void OnDraw(wxDC& dc);
128
129public:
130 // Constructor
131 wxHtmlAppletWindow(
132 wxWindow *parent,
133 wxWindowID id = -1,
134 wxToolBarBase *navBar = NULL,
135 int navBackId = -1,
136 int navForwardId = -1,
137 const wxPoint& pos = wxDefaultPosition,
138 const wxSize& size = wxDefaultSize,
139 long style = wxHW_SCROLLBAR_AUTO,
140 const wxString& name = "htmlAppletWindow");
141
142 // Destructor
143 ~wxHtmlAppletWindow();
144
145 // Create an instance of an applet based on it's class name
146 wxApplet *CreateApplet(
147 const wxString& classId,
148 const wxString& iName,
149 const wxHtmlTag &params,
150 const wxSize& size);
151
152 // Create an instance of an Qlet based on it's class name
153 bool CreatePlugIn(const wxString& classId,const wxString& cmdLine = "");
154
155 // Find an instance of an applet based on it's class name
156 wxApplet *FindApplet(const wxString& className);
157
158 // Remove an applet from the window. Called during applet destruction
159 bool RemoveApplet(const wxApplet *applet);
160
161 // Load a new URL page
162 virtual bool LoadPage(const wxString& location);
163
164 // Called when users clicked on hypertext link.
165 virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
166
167 // Handles forward navigation within the HTML stack
168 bool HistoryForward();
169
170 // Handles backwards navigation within the HTML stack
171 bool HistoryBack();
172
173 // Disables Nav bars
174 void DisableNavBar();
175
176 // Enables Nav bars
177 void EnableNavBar();
178
179 void SetNavBar(wxToolBarBase *navBar);
180
181 // Broadcast a message to all applets on the page
182 void SendAppletMessage(wxAppletEvent& msg);
183
184 // Register a cookie of data in the applet manager
185 static bool RegisterCookie(const wxString& name,wxObject *cookie);
186
187 // UnRegister a cookie of data in the applet manager
188 static bool UnRegisterCookie(const wxString& name);
189
190 // Find a cookie of data given it's public name
191 static wxObject *FindCookie(const wxString& name);
192
193 // Event handlers to load a new page
194 void OnLoadPage(wxLoadPageEvent &event);
195
196 // Event handlers to load a new page
197 void OnPageLoaded(wxPageLoadedEvent &event);
198
199 // LoadPage mutex locks
200 void Lock(){ m_mutexLock = true;};
201 void UnLock(){ m_mutexLock = false;};
202
203 // Returns TRUE if the mutex is locked, FALSE otherwise.
204 bool IsLocked(){ return m_mutexLock;};
205
206 // Tries to lock the mutex. If it can't, returns immediately with false.
207 bool TryLock();
208
209 wxString GetLastOpened() { return m_openedlast; }
210 };
211
212/****************************************************************************
213REMARKS:
214Defines the class for wxHtmlAppletCell
215***************************************************************************/
216class wxHtmlAppletCell : public wxHtmlCell
217{
218public:
219 wxHtmlAppletCell(wxWindow *wnd, int w = 0);
220 virtual ~wxHtmlAppletCell();
221 virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
222 virtual void DrawInvisible(wxDC& dc, int x, int y);
223 virtual void Layout(int w);
224
225protected:
226 wxWindow* m_Wnd;
227 // width float is used in adjustWidth (it is in percents)
228};
229
230#endif // __WX_APPLET_WINDOW_H
231