/****************************************************************************
*
-* wxWindows HTML Applet Package
+* wxWindows HTML Applet Package
*
* Copyright (C) 1991-2001 SciTech Software, Inc.
* All rights reserved.
* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
* ======================================================================
*
-* Language: ANSI C++
-* Environment: Any
+* Language: ANSI C++
+* Environment: Any
*
* Description: Header file for the wxHtmlAppletWindow class
*
#define __WX_APPLET_WINDOW_H
#include "wx/html/htmlwin.h"
+#include "wx/process.h"
-/*--------------------------- Class Definitions ---------------------------*/
+// Forward declare
+class wxApplet;
+class wxLoadPageEvent;
+class wxPageLoadedEvent;
+class wxIncludePrep;
// Declare a linked list of wxApplet pointers
-class wxApplet;
WX_DECLARE_LIST(wxApplet, wxAppletList);
+/*--------------------------- Class Definitions ---------------------------*/
+
/****************************************************************************
-MEMBERS:
-appletModules - List of register applet modules
-appletList - List of all active applets instances
-cookies - Hash table for managing cookies
+REMARKS:
+Defines the class for virtual-link data types
+****************************************************************************/
+class VirtualData : public wxObject {
+private:
+ wxString m_name;
+ wxString m_group;
+ wxString m_href;
+
+public:
+ // Ctors
+ VirtualData(
+ wxString& name,
+ wxString& group,
+ wxString& href );
+
+ // Gets
+ wxString GetName(){ return m_name;};
+ wxString GetGroup(){ return m_group;};
+ wxString GetHref(){ return m_href;};
+
+ // Sets
+ void SetName (wxString& s){ m_name = s; };
+ void SetGroup(wxString& s){ m_group = s; };
+ void SetHref (wxString& s){ m_href = s; };
+ };
+/****************************************************************************
REMARKS:
Defines the class for wxAppletWindow. This class is derived from the
wxHtmlWindow class and extends it with functionality to handle embedded
private:
DECLARE_CLASS(wxHtmlAppletWindow);
DECLARE_EVENT_TABLE();
-
+
+ bool m_mutexLock;
+ wxIncludePrep *incPreprocessor; // deleted by list it is added too in constructor
protected:
- wxAppletList m_AppletList;
- wxHashTable m_Cookies;
-
+ wxAppletList m_AppletList;
+ static wxHashTable m_Cookies;
+ wxToolBarBase *m_NavBar;
+ int m_NavBackId;
+ int m_NavForwardId;
+ wxString m_DocRoot;
public:
- // Constructor
- wxHtmlAppletWindow(
- wxWindow *parent,
- wxWindowID id = -1,
+ // Constructor
+ wxHtmlAppletWindow(
+ wxWindow *parent,
+ wxWindowID id = -1,
+ wxToolBarBase *navBar = NULL,
+ int navBackId = -1,
+ int navForwardId = -1,
const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxHW_SCROLLBAR_AUTO,
- const wxString& name = "htmlAppletWindow");
-
- // Destructor
- ~wxHtmlAppletWindow();
-
- // Create an instance of an applet based on it's class name
- wxApplet *CreateApplet(
- const wxString& className,
- const wxSize& size);
-
- // Find an instance of an applet based on it's class name
- wxApplet *FindApplet(const wxString& className);
-
- // Remove an applet from the window. Called during applet destruction
- bool RemoveApplet(const wxApplet *applet);
+ const wxSize& size = wxDefaultSize,
+ long style = wxHW_SCROLLBAR_AUTO,
+ const wxString& name = "htmlAppletWindow",
+ const wxString& docroot = "" );
- // Load a new URL page
- bool LoadPage(const wxString& hRef);
-
- // Called when users clicked on hypertext link.
- void OnLinkClicked(const wxHtmlLinkInfo& link);
-
- // Handles forward navigation within the HTML stack
- bool HistoryForward();
-
- // Handles backwards navigation within the HTML stack
- bool HistoryBack();
-
- // Broadcast a message to all applets on the page
- void SendMessage(wxEvent& msg);
-
- // Register a cookie of data in the applet manager
- bool RegisterCookie(const wxString& name,wxObject *cookie);
-
- // UnRegister a cookie of data in the applet manager
- bool UnRegisterCookie(const wxString& name);
+ // Destructor
+ ~wxHtmlAppletWindow();
+
+ // Create an instance of an applet based on it's class name
+ wxApplet *CreateApplet(
+ const wxString& classId,
+ const wxString& iName,
+ const wxHtmlTag ¶ms,
+ const wxSize& size);
+
+ // Find an instance of an applet based on it's class name
+ wxApplet *FindApplet(const wxString& className);
+
+ // Remove an applet from the window. Called during applet destruction
+ bool RemoveApplet(const wxApplet *applet);
+
+ // Load a new URL page
+ virtual bool LoadPage(const wxString& location);
+
+ // Called when users clicked on hypertext link.
+ virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
+
+ // Handles forward navigation within the HTML stack
+ bool HistoryForward();
+
+ // Handles backwards navigation within the HTML stack
+ bool HistoryBack();
+
+ // Broadcast a message to all applets on the page
+ void SendMessage(wxEvent& msg);
+
+ // Register a cookie of data in the applet manager
+ static bool RegisterCookie(const wxString& name,wxObject *cookie);
+
+ // UnRegister a cookie of data in the applet manager
+ static bool UnRegisterCookie(const wxString& name);
+
+ // Find a cookie of data given it's public name
+ static wxObject *FindCookie(const wxString& name);
- // Find a cookie of data given it's public name
- wxObject *FindCookie(const wxString& name);
- };
-
+ // Event handlers to load a new page
+ void OnLoadPage(wxLoadPageEvent &event);
+
+ // Event handlers to load a new page
+ void OnPageLoaded(wxPageLoadedEvent &event);
+
+ // LoadPage mutex locks
+ void Lock(){ m_mutexLock = true;};
+ void UnLock(){ m_mutexLock = false;};
+
+ // Returns TRUE if the mutex is locked, FALSE otherwise.
+ bool IsLocked(){ return m_mutexLock;};
+
+ // Tries to lock the mutex. If it can't, returns immediately with false.
+ bool TryLock();
+
+ };
+
+/****************************************************************************
+REMARKS:
+Defines the class for AppetProcess
+***************************************************************************/
+class AppletProcess : public wxProcess {
+public:
+ AppletProcess(
+ wxWindow *parent)
+ : wxProcess(parent)
+ {
+ }
+
+ // instead of overriding this virtual function we might as well process the
+ // event from it in the frame class - this might be more convenient in some
+ // cases
+ virtual void OnTerminate(int pid, int status);
+
+ };
+
+
#endif // __WX_APPLET_WINDOW_H