* 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/process.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);
wxString& group,
wxString& href );
+ VirtualData();
+
// Gets
wxString GetName(){ return m_name;};
wxString GetGroup(){ return m_group;};
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;
-
+ wxPalette m_globalPalette;
+
+ // Override this so we can do proper palette management!!
+ virtual void OnDraw(wxDC& dc);
+
public:
// Constructor
wxHtmlAppletWindow(
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxHW_SCROLLBAR_AUTO,
- const wxString& name = "htmlAppletWindow");
+ const wxString& name = "htmlAppletWindow",
+ const wxPalette& globalPalette = wxNullPalette);
// Destructor
~wxHtmlAppletWindow();
const wxHtmlTag ¶ms,
const wxSize& size);
+ // Create an instance of an Qlet based on it's class name
+ bool CreatePlugIn(const wxString& classId );
+
// 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);
// 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();
+
};
+/****************************************************************************
+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);
+
+ };
+
+/****************************************************************************
+REMARKS:
+Defines the class for wxHtmlAppletCell
+***************************************************************************/
+class wxHtmlAppletCell : public wxHtmlCell
+{
+public:
+ wxHtmlAppletCell(wxWindow *wnd, int w = 0);
+ ~wxHtmlAppletCell() { m_Wnd->Destroy(); }
+ 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