• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/contrib/include/wx/applet/
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            virtual ~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
232