]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/htmlwin.h
Committing in .
[wxWidgets.git] / include / wx / html / htmlwin.h
index 89117cec8c563d4f857f17d603b2bc51dd530e0f..027064aefb511634fe514d2887901a39878287dd 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/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"
 
 
 //--------------------------------------------------------------------------------
 // wxHtmlWindow
-//                  (This is probably the only class you will directly use.) 
+//                  (This is probably the only class you will directly use.)
 //                  Purpose of this class is to display HTML page (either local
 //                  file or downloaded via HTTP protocol) in a window. Width
 //                  of window is constant - given in constructor - virtual height
 //                  is changed dynamicly depending on page size.
 //                  Once the window is created you can set it's content by calling
-//                  SetPage(text) or LoadPage(filename). 
+//                  SetPage(text) or LoadPage(filename).
 //--------------------------------------------------------------------------------
 
 
 // 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 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
-
     public:
         wxHtmlWindow() : wxScrolledWindow() {};
-        wxHtmlWindow(wxWindow *parent, wxWindowID id = -1, 
+        wxHtmlWindow(wxWindow *parent, wxWindowID id = -1,
                      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
                     long style = wxHW_SCROLLBAR_AUTO,
                      const wxString& name = "htmlWindow");
@@ -125,10 +74,10 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
 
         bool SetPage(const wxString& source);
                 // Set HTML page and display it. !! source is HTML document itself,
-                // it is NOT address/filename of HTML document. If you want to 
+                // it is NOT address/filename of HTML document. If you want to
                 // specify document location, use LoadPage() istead
                 // Return value : FALSE if an error occured, TRUE otherwise
-                
+
         bool LoadPage(const wxString& location);
                 // Load HTML page from given location. Location can be either
                 // a) /usr/wxGTK2/docs/html/wx.htm
@@ -142,17 +91,17 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
 
         wxString GetOpenedPage() const {return m_OpenedPage;}
                 // Returns full location of opened page
-        
+
         void SetRelatedFrame(wxFrame* frame, const wxString& format);
                 // sets frame in which page title will  be displayed. Format is format of
-                // frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s 
+                // frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s
         wxFrame* GetRelatedFrame() const {return m_RelatedFrame;}
 
         void SetRelatedStatusBar(int bar);
                 // 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, int normal_italic_mode, wxString fixed_face, int fixed_italic_mode, const int *sizes);
                 // sets fonts to be used when displaying HTML page.
                 // *_italic_mode can be either wxSLANT or wxITALIC
 
@@ -187,10 +136,13 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
         virtual void OnLinkClicked(const wxString& 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.
+
     protected:
         bool ScrollToAnchor(const wxString& anchor);
                 // Scrolls to anchor of this name. (Anchor is #news
@@ -207,18 +159,64 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
         void OnMouseEvent(wxMouseEvent& event);
         void OnIdle(wxIdleEvent& event);
         void OnKeyDown(wxKeyEvent& event);
-       
+
        virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;}
                // returns new filter (will be stored into m_DefaultFilter variable)
 
-    DECLARE_EVENT_TABLE()
-};
 
+    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;
 
-#endif // __HTMLWIN_H__
+    private:
+        bool m_tmpMouseMoved;
+                // a flag indicated if mouse moved
+                // (if TRUE we will try to change cursor in last call to OnIdle)
+        wxString m_tmpLastLink;
+                // contains last link name
+        bool m_tmpCanDraw;
+                // if FALSE contents of the window is not redrawn
+                // (in order to avoid ugly bliking)
 
-#endif
+        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
 
 
+    DECLARE_EVENT_TABLE()
+};
+
+
+#endif
 
+#endif // _WX_HTMLWIN_H_