]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/htmlwin.h
Added wxCLIP_SIBLINGS. CVS also seems to think lots of other files need updating.
[wxWidgets.git] / include / wx / html / htmlwin.h
index cb339ec0b3dcce8f5e1cc76a6b2543cbf9f62b55..0fd05a4d01d97e490e1face4d3ab492400d60648 100644 (file)
@@ -2,13 +2,14 @@
 // Name:        htmlwin.h
 // Purpose:     wxHtmlWindow class for parsing & displaying HTML
 // Author:      Vaclav Slavik
+// RCS-ID:      $Id$
 // Copyright:   (c) 1999 Vaclav Slavik
 // Licence:     wxWindows Licence
 /////////////////////////////////////////////////////////////////////////////
 
 
-#ifndef __HTMLWIN_H__
-#define __HTMLWIN_H__
+#ifndef _WX_HTMLWIN_H_
+#define _WX_HTMLWIN_H_
 
 #ifdef __GNUG__
 #pragma interface
 #include "wx/defs.h"
 #if wxUSE_HTML
 
-#include <wx/window.h>
-#include <wx/scrolwin.h>
-#include <wx/config.h>
-#include <wx/treectrl.h>
-#include <wx/html/htmlwinparser.h>
-#include <wx/html/htmlcell.h>
-#include <wx/filesys.h>
-#include <wx/html/htmlfilter.h>
+#include "wx/window.h"
+#include "wx/scrolwin.h"
+#include "wx/config.h"
+#include "wx/treectrl.h"
+#include "wx/html/winpars.h"
+#include "wx/html/htmlcell.h"
+#include "wx/filesys.h"
+#include "wx/html/htmlfilt.h"
 
 
 //--------------------------------------------------------------------------------
 // item of history list
 class WXDLLEXPORT HtmlHistoryItem : public wxObject
 {
-    private:
-        wxString m_Page;
-        wxString m_Anchor;
-        int m_Pos;
-
     public:
         HtmlHistoryItem(const wxString& p, const wxString& a) {m_Page = p, m_Anchor = a, m_Pos = 0;}
         int GetPos() const {return m_Pos;}
         void SetPos(int p) {m_Pos = p;}
         const wxString& GetPage() const {return m_Page;}
         const wxString& GetAnchor() const {return m_Anchor;}
-};
 
-#undef WXDLLEXPORTLOCAL
-#define WXDLLEXPORTLOCAL WXDLLEXPORT
-     // ?? Don't know why - but Allen Van Sickel reported it to fix problems with DLL
+    private:
+        wxString m_Page;
+        wxString m_Anchor;
+        int m_Pos;
+};
 
-WX_DECLARE_OBJARRAY(HtmlHistoryItem, HtmlHistoryArray);
 
-#undef WXDLLEXPORTLOCAL
-#define WXDLLEXPORTLOCAL
+WX_DECLARE_EXPORTED_OBJARRAY(HtmlHistoryItem, HtmlHistoryArray);
 
+class wxHtmlWinModule;
 
 class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
 {
     DECLARE_DYNAMIC_CLASS(wxHtmlWindow)
-
-    protected:
-        wxHtmlContainerCell *m_Cell;
-                // This is pointer to the first cell in parsed data.
-                // (Note: the first cell is usually top one = all other cells are sub-cells of this one)
-        wxHtmlWinParser *m_Parser;
-                // parser which is used to parse HTML input.
-                // Each wxHtmlWindow has it's own parser because sharing one global
-                // parser would be problematic (because of reentrancy)
-        wxString m_OpenedPage;
-                // contains name of actualy opened page or empty string if no page opened
-        wxString m_OpenedAnchor;
-                // contains name of current anchor within m_OpenedPage
-        wxFileSystem* m_FS;
-                // class for opening files (file system)
-
-        wxFrame *m_RelatedFrame;
-        wxString m_TitleFormat;
-        int m_RelatedStatusBar;
-                // frame in which page title should be displayed & number of it's statusbar
-                // reserved for usage with this html window
-
-        int m_Borders;
-                // borders (free space between text and window borders)
-                // defaults to 10 pixels.
-
-        int m_Style;
-
-
-    private:
-        bool m_tmpMouseMoved;
-                // a flag indicated if mouse moved
-                // (if TRUE we will try to change cursor in last call to OnIdle)
-        bool m_tmpCanDraw;
-                // if FALSE contents of the window is not redrawn
-                // (in order to avoid ugly bliking)
-
-        static wxList m_Filters;
-                // list of HTML filters
-        static wxHtmlFilter *m_DefaultFilter;
-                // this filter is used when no filter is able to read some file
-
-        HtmlHistoryArray m_History;
-        int m_HistoryPos;
-                // browser history
-        bool m_HistoryOn;
-                // if this FLAG is false, items are not added to history
+    
+    friend class wxHtmlWinModule;
 
     public:
         wxHtmlWindow() : wxScrolledWindow() {};
         wxHtmlWindow(wxWindow *parent, wxWindowID id = -1,
                      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-                    long style = wxHW_SCROLLBAR_AUTO,
+                     long style = wxHW_SCROLLBAR_AUTO,
                      const wxString& name = "htmlWindow");
         ~wxHtmlWindow();
 
@@ -143,6 +94,10 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
 
         wxString GetOpenedPage() const {return m_OpenedPage;}
                 // Returns full location of opened page
+        wxString GetOpenedAnchor() const {return m_OpenedAnchor;}
+                // Returns anchor within opened page
+        wxString GetOpenedPageTitle() const {return m_OpenedPageTitle;}
+                // Returns <TITLE> of opened page or empty string otherwise
 
         void SetRelatedFrame(wxFrame* frame, const wxString& format);
                 // sets frame in which page title will  be displayed. Format is format of
@@ -153,11 +108,10 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
                 // after(!) calling SetRelatedFrame, this sets statusbar slot where messages
                 // will be displayed. Default is -1 = no messages.
 
-        void SetFonts(wxString normal_face, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, int *sizes);
+        void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes);
                 // sets fonts to be used when displaying HTML page.
-                // *_italic_mode can be either wxSLANT or wxITALIC
 
-        void SetTitle(const wxString& title);
+        virtual void OnSetTitle(const wxString& title);
                 // Sets the title of the window
                 // (depending on the information passed to SetRelatedFrame() method)
 
@@ -185,13 +139,10 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
         static void AddFilter(wxHtmlFilter *filter);
                 // Adds input filter
 
-        virtual void OnLinkClicked(const wxString& link);
+        virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
                 // called when users clicked on hypertext link. Default behavior is to
                 // call LoadPage(loc)
 
-       static void CleanUpStatics();
-               // cleans static variables
-
         wxHtmlWinParser *GetParser() const { return m_Parser; }
                 // return a pointer to the parser.
 
@@ -210,19 +161,72 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
         void OnSize(wxSizeEvent& event);
         void OnMouseEvent(wxMouseEvent& event);
         void OnIdle(wxIdleEvent& event);
-        void OnKeyDown(wxKeyEvent& event);
 
-       virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;}
+        virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;}
                // returns new filter (will be stored into m_DefaultFilter variable)
 
-    DECLARE_EVENT_TABLE()
-};
+        static void CleanUpStatics();
+               // cleans static variables
 
 
+    protected:
+        wxHtmlContainerCell *m_Cell;
+                // This is pointer to the first cell in parsed data.
+                // (Note: the first cell is usually top one = all other cells are sub-cells of this one)
+        wxHtmlWinParser *m_Parser;
+                // parser which is used to parse HTML input.
+                // Each wxHtmlWindow has it's own parser because sharing one global
+                // parser would be problematic (because of reentrancy)
+        wxString m_OpenedPage;
+                // contains name of actualy opened page or empty string if no page opened
+        wxString m_OpenedAnchor;
+                // contains name of current anchor within m_OpenedPage
+        wxString m_OpenedPageTitle;
+                // contains title of actualy opened page or empty string if no <TITLE> tag
+        wxFileSystem* m_FS;
+                // class for opening files (file system)
 
-#endif // __HTMLWIN_H__
+        wxFrame *m_RelatedFrame;
+        wxString m_TitleFormat;
+        int m_RelatedStatusBar;
+                // frame in which page title should be displayed & number of it's statusbar
+                // reserved for usage with this html window
 
-#endif
+        int m_Borders;
+                // borders (free space between text and window borders)
+                // defaults to 10 pixels.
+
+        int m_Style;
+
+    private:
+        bool m_tmpMouseMoved;
+                // a flag indicated if mouse moved
+                // (if TRUE we will try to change cursor in last call to OnIdle)
+        wxHtmlLinkInfo *m_tmpLastLink;
+                // contains last link name
+        int m_tmpCanDrawLocks;
+                // if >0 contents of the window is not redrawn
+                // (in order to avoid ugly blinking)
+
+        static wxList m_Filters;
+                // list of HTML filters
+        static wxHtmlFilter *m_DefaultFilter;
+                // this filter is used when no filter is able to read some file
+
+        static wxCursor *s_cur_hand;
+        static wxCursor *s_cur_arrow;
 
+        HtmlHistoryArray m_History;
+        int m_HistoryPos;
+                // browser history
+        bool m_HistoryOn;
+                // if this FLAG is false, items are not added to history
 
 
+    DECLARE_EVENT_TABLE()
+};
+
+
+#endif
+
+#endif // _WX_HTMLWIN_H_