* Copyright (C) 1991-2001 SciTech Software, Inc.
* All rights reserved.
*
-* ======================================================================
-* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
-* | |
-* |This copyrighted computer code is a proprietary trade secret of |
-* |SciTech Software, Inc., located at 505 Wall Street, Chico, CA 95928 |
-* |USA (www.scitechsoft.com). ANY UNAUTHORIZED POSSESSION, USE, |
-* |VIEWING, COPYING, MODIFICATION OR DISSEMINATION OF THIS CODE IS |
-* |STRICTLY PROHIBITED BY LAW. Unless you have current, express |
-* |written authorization from SciTech to possess or use this code, you |
-* |may be subject to civil and/or criminal penalties. |
-* | |
-* |If you received this code in error or you would like to report |
-* |improper use, please immediately contact SciTech Software, Inc. at |
-* |530-894-8400. |
-* | |
-* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
-* ======================================================================
+* ========================================================================
+*
+* The contents of this file are subject to the wxWindows License
+* Version 3.0 (the "License"); you may not use this file except in
+* compliance with the License. You may obtain a copy of the License at
+* http://www.wxwindows.org/licence3.txt
+*
+* Software distributed under the License is distributed on an
+* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+* implied. See the License for the specific language governing
+* rights and limitations under the License.
+*
+* ========================================================================
*
* Language: ANSI C++
* Environment: Any
#define __WX_APPLET_WINDOW_H
#include "wx/html/htmlwin.h"
+#include "wx/hash.h"
+#include "wx/process.h"
+#include "wx/toolbar.h"
// Forward declare
class wxApplet;
+class wxQlet;
class wxLoadPageEvent;
class wxPageLoadedEvent;
class wxIncludePrep;
+class wxToolBarBase;
// Declare a linked list of wxApplet pointers
WX_DECLARE_LIST(wxApplet, wxAppletList);
/*--------------------------- Class Definitions ---------------------------*/
+class wxAppletEvent {
+protected:
+ int m_id;
+ wxObject *m_eventObject;
+public:
+ wxAppletEvent(int id) { m_eventObject=NULL; m_id = id; }
+
+ int GetId() const { return m_id; }
+ void SetId(int Id) { m_id = Id; }
+
+ wxObject *GetEventObject() const { return m_eventObject; }
+ void SetEventObject(wxObject *obj) { m_eventObject = obj; }
+
+};
+
/****************************************************************************
REMARKS:
****************************************************************************/
class VirtualData : public wxObject {
private:
+ DECLARE_DYNAMIC_CLASS(VirtualData);
+
+protected:
wxString m_name;
wxString m_group;
wxString m_href;
+ wxString m_plugIn;
public:
// Ctors
VirtualData(
wxString& name,
wxString& group,
- wxString& href );
+ wxString& href,
+ wxString& plugin );
+
+ VirtualData();
// Gets
wxString GetName(){ return m_name;};
wxString GetGroup(){ return m_group;};
wxString GetHref(){ return m_href;};
+ wxString GetPlugIn(){ return m_plugIn;};
// Sets
void SetName (wxString& s){ m_name = s; };
void SetGroup(wxString& s){ m_group = s; };
void SetHref (wxString& s){ m_href = s; };
+ void SetPlugIn (wxString& s){ m_plugIn = s;};
+ void EmptyPlugIn () { m_plugIn = "";};
};
/****************************************************************************
DECLARE_CLASS(wxHtmlAppletWindow);
DECLARE_EVENT_TABLE();
- wxIncludePrep *incPreprocessor; // deleted by list it is added too in constructor
+ bool m_mutexLock;
+ wxIncludePrep *incPreprocessor; // deleted by list it is added too in constructor
+
protected:
wxAppletList m_AppletList;
static wxHashTable m_Cookies;
+ bool m_NavBarEnabled;
wxToolBarBase *m_NavBar;
int m_NavBackId;
int m_NavForwardId;
-
+ wxString m_openedlast;
+
+ // Override this so we can do proper palette management!!
+ virtual void OnDraw(wxDC& dc);
+
public:
// Constructor
wxHtmlAppletWindow(
const wxHtmlTag ¶ms,
const wxSize& size);
+ // Create an instance of an Qlet based on it's class name
+ bool CreatePlugIn(const wxString& classId,const wxString& cmdLine = "");
+
// Find an instance of an applet based on it's class name
wxApplet *FindApplet(const wxString& className);
// Handles backwards navigation within the HTML stack
bool HistoryBack();
+ // Disables Nav bars
+ void DisableNavBar();
+
+ // Enables Nav bars
+ void EnableNavBar();
+
+ void SetNavBar(wxToolBarBase *navBar);
+
// Broadcast a message to all applets on the page
- void SendMessage(wxEvent& msg);
+ void SendAppletMessage(wxAppletEvent& msg);
// Register a cookie of data in the applet manager
- bool RegisterCookie(const wxString& name,wxObject *cookie);
+ static bool RegisterCookie(const wxString& name,wxObject *cookie);
// UnRegister a cookie of data in the applet manager
- bool UnRegisterCookie(const wxString& name);
+ static bool UnRegisterCookie(const wxString& name);
// Find a cookie of data given it's public name
- wxObject *FindCookie(const wxString& name);
+ static 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();
+
+ wxString GetLastOpened() { return m_openedlast; }
};
+/****************************************************************************
+REMARKS:
+Defines the class for wxHtmlAppletCell
+***************************************************************************/
+class wxHtmlAppletCell : public wxHtmlCell
+{
+public:
+ wxHtmlAppletCell(wxWindow *wnd, int w = 0);
+ virtual ~wxHtmlAppletCell();
+ virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
+ virtual void DrawInvisible(wxDC& dc, int x, int y);
+ virtual void Layout(int w);
+
+protected:
+ wxWindow* m_Wnd;
+ // width float is used in adjustWidth (it is in percents)
+};
+
#endif // __WX_APPLET_WINDOW_H