wxWidgets/contrib/include/wx/applet/window.h

232 lines
7.5 KiB
C
Raw Normal View History

/****************************************************************************
*
* wxWindows HTML Applet Package
*
* Copyright (C) 1991-2001 SciTech Software, Inc.
* All rights reserved.
*
* ========================================================================
*
* 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
*
* Description: Header file for the wxHtmlAppletWindow class
*
****************************************************************************/
#ifndef __WX_APPLET_WINDOW_H
#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;
More build system polishing.. mostly. Some stuff ported over from recent changes to the 2.2 branch. Rationalised the autoconf scripts again, removed lots of stuff that shouldn't be there anymore and pounded the rest into an even tighter furball. (There's more work to be done here, but we're getting there..) Implemented the library naming scheme outlined in tn0012.txt -- introduced 'toolchain' and 'widget set' into the autoconf scripts, obsoleted the top level wx/setup.h and much of the mess associated with it. More changes for cross compiling and 2.3 debs. s/burnt_name/soname/g ; s/CC/CXX/g ; s/CCC/CC/g ; Just because it's Right. (Thanks Vadim for already doing *FLAGS..) Fixed libfl Makefile to actually work. Removed *_DEPS from tmake templates, in every case they can be determined from the relevant *_OBJS Added BASE_MSW_OBJS, a couple of missing #includes, some missing files to the 'dist' targets, and fixed some compile warnings. Changed setup.py to use wx-config --gl-libs instead of hard coded constants. Modified Files: Makefile.in configure configure.in setup.h.in wx-config.in wxBase.spec wxGTK.spec wxMotif.spec contrib/include/wx/applet/window.h contrib/src/Makefile.in contrib/src/applet/appletwindow.cpp contrib/src/fl/Makefile.in debian/changelog debian/control.in debian/libwxbase-dbg.dirs debian/libwxbase-dbg.links debian/libwxbase-dbg.postinst debian/libwxbase-dbg.prerm debian/libwxbase-dev.dirs debian/libwxbase-dev.files debian/libwxbase-dev.links debian/libwxbase-dev.postinst debian/libwxbase-dev.prerm debian/libwxgtk-dbg.dirs debian/libwxgtk-dbg.links debian/libwxgtk-dbg.postinst debian/libwxgtk-dbg.prerm debian/libwxgtk-dev.dirs debian/libwxgtk-dev.files debian/libwxgtk-dev.links debian/libwxgtk-dev.postinst debian/libwxgtk-dev.prerm debian/rules distrib/msw/tmake/base.t distrib/msw/tmake/gtk.t distrib/msw/tmake/mgl.t distrib/msw/tmake/motif.t distrib/msw/tmake/msw.t distrib/msw/tmake/os2.t distrib/msw/tmake/univ.t docs/motif/install.txt include/wx/msw/private.h include/wx/os2/SETUP.H include/wx/os2/SETUP0.H samples/ipc/Makefile.in samples/sockets/Makefile.in src/files.lst src/make.env.in src/makelib.env.in src/makeprog.env.in src/common/strconv.cpp src/gtk/files.lst src/mgl/files.lst src/motif/files.lst src/msw/files.lst src/msw/gsocket.c src/msw/gsockmsw.c src/msw/toplevel.cpp src/msw/utils.cpp src/os2/files.lst src/univ/files.lst wxPython/setup.py Added Files: debian/libwxbase-msw-dev.dirs debian/libwxbase-msw-dev.links debian/libwxbase-msw-dev.postinst debian/libwxbase-msw-dev.prerm debian/libwxmsw-dev.dirs debian/libwxmsw-dev.links debian/libwxmsw-dev.postinst debian/libwxmsw-dev.prerm debian/wxwin-doc.doc-base debian/wxwin-headers-msw.dirs Removed Files: debian/wxwin-doc.doc-base.in include/wx/setup.h git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2001-09-28 03:00:13 -04:00
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:
Defines the class for virtual-link data types
****************************************************************************/
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& 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 = "";};
};
/****************************************************************************
REMARKS:
Defines the class for wxAppletWindow. This class is derived from the
wxHtmlWindow class and extends it with functionality to handle embedded
wxApplet's on the HTML pages.
****************************************************************************/
class wxHtmlAppletWindow : public wxHtmlWindow {
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;
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(
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
virtual ~wxHtmlAppletWindow();
// Create an instance of an applet based on it's class name
wxApplet *CreateApplet(
const wxString& classId,
const wxString& iName,
const wxHtmlTag &params,
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);
// 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();
// Disables Nav bars
void DisableNavBar();
// Enables Nav bars
void EnableNavBar();
void SetNavBar(wxToolBarBase *navBar);
// Broadcast a message to all applets on the page
void SendAppletMessage(wxAppletEvent& 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);
// 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