]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/htmprint.h
don't draw borders for bitmap buttons with wxBORDER_NONE style
[wxWidgets.git] / include / wx / html / htmprint.h
index df90a47dce40aa01c73d90063606620028f62979..cf0a18fb122ad929585ee8d0e935ca3dd1945bf3 100644 (file)
@@ -4,17 +4,13 @@
 // Author:      Vaclav Slavik
 // Created:     25/09/99
 // RCS-ID:      $Id$
 // Author:      Vaclav Slavik
 // Created:     25/09/99
 // RCS-ID:      $Id$
-// Copyright:   (c)
+// Copyright:   (c) Vaclav Slavik
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_HTMPRINT_H_
 #define _WX_HTMPRINT_H_
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_HTMPRINT_H_
 #define _WX_HTMPRINT_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "htmprint.h"
-#endif
-
 #include "wx/defs.h"
 
 #if wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE
 #include "wx/defs.h"
 
 #if wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE
@@ -38,7 +34,7 @@ class WXDLLIMPEXP_HTML wxHtmlDCRenderer : public wxObject
 {
 public:
     wxHtmlDCRenderer();
 {
 public:
     wxHtmlDCRenderer();
-    ~wxHtmlDCRenderer();
+    virtual ~wxHtmlDCRenderer();
 
     // Following 3 methods *must* be called before any call to Render:
 
 
     // Following 3 methods *must* be called before any call to Render:
 
@@ -57,7 +53,7 @@ public:
     void SetHtmlText(const wxString& html, const wxString& basepath = wxEmptyString, bool isdir = true);
 
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
     void SetHtmlText(const wxString& html, const wxString& basepath = wxEmptyString, bool isdir = true);
 
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
-    void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
+    void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = NULL);
 
     // Sets font sizes to be relative to the given size or the system
     // default size; use either specified or default font
 
     // Sets font sizes to be relative to the given size or the system
     // default size; use either specified or default font
@@ -81,13 +77,15 @@ public:
     // set the same pagebreak twice.
     //
     // CAUTION! Render() changes DC's user scale and does NOT restore it!
     // set the same pagebreak twice.
     //
     // CAUTION! Render() changes DC's user scale and does NOT restore it!
-    int Render(int x, int y, int from = 0, int dont_render = FALSE,
-               int maxHeight = INT_MAX,
-               int *known_pagebreaks = NULL, int number_of_pages = 0);
+    int Render(int x, int y, wxArrayInt& known_pagebreaks, int from = 0,
+               int dont_render = false, int to = INT_MAX);
+
+    // returns total width of the html document
+    int GetTotalWidth() const;
 
     // returns total height of the html document
     // (compare Render's return value with this)
 
     // returns total height of the html document
     // (compare Render's return value with this)
-    int GetTotalHeight();
+    int GetTotalHeight() const;
 
 private:
     wxDC *m_DC;
 
 private:
     wxDC *m_DC;
@@ -96,7 +94,7 @@ private:
     wxHtmlContainerCell *m_Cells;
     int m_MaxWidth, m_Width, m_Height;
 
     wxHtmlContainerCell *m_Cells;
     int m_MaxWidth, m_Width, m_Height;
 
-    DECLARE_NO_COPY_CLASS(wxHtmlDCRenderer)
+    wxDECLARE_NO_COPY_CLASS(wxHtmlDCRenderer);
 };
 
 
 };
 
 
@@ -122,7 +120,7 @@ class WXDLLIMPEXP_HTML wxHtmlPrintout : public wxPrintout
 {
 public:
     wxHtmlPrintout(const wxString& title = wxT("Printout"));
 {
 public:
     wxHtmlPrintout(const wxString& title = wxT("Printout"));
-    ~wxHtmlPrintout();
+    virtual ~wxHtmlPrintout();
 
     void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true);
             // prepares the class for printing this html document.
 
     void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true);
             // prepares the class for printing this html document.
@@ -147,7 +145,7 @@ public:
             // You can set different header/footer for odd and even pages
 
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
             // You can set different header/footer for odd and even pages
 
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used).
-    void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = NULL);
+    void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = NULL);
 
     // Sets font sizes to be relative to the given size or the system
     // default size; use either specified or default font
 
     // Sets font sizes to be relative to the given size or the system
     // default size; use either specified or default font
@@ -174,6 +172,18 @@ public:
     static void CleanUpStatics();
 
 private:
     static void CleanUpStatics();
 
 private:
+    // this function is called by the base class OnPreparePrinting()
+    // implementation and by default checks whether the document fits into
+    // pageArea horizontally and warns the user if it does not, giving him
+    // the possibility to cancel printing in this case
+    //
+    // you may override it to either suppress this check if truncation of the
+    // HTML being printed is acceptable or, on the contrary, add more checks to
+    // it, e.g. for the fit in the vertical direction if the document should
+    // always appear on a single page
+    //
+    // return true if printing should go ahead or false to cancel it
+    virtual bool CheckFit(const wxSize& pageArea, const wxSize& docArea) const;
 
     void RenderPage(wxDC *dc, int page);
             // renders one page into dc
 
     void RenderPage(wxDC *dc, int page);
             // renders one page into dc
@@ -185,7 +195,8 @@ private:
 
 private:
     int m_NumPages;
 
 private:
     int m_NumPages;
-    int m_PageBreaks[wxHTML_PRINT_MAX_PAGES];
+    //int m_PageBreaks[wxHTML_PRINT_MAX_PAGES];
+    wxArrayInt m_PageBreaks;
 
     wxString m_Document, m_BasePath;
     bool m_BasePathIsDir;
 
     wxString m_Document, m_BasePath;
     bool m_BasePathIsDir;
@@ -198,7 +209,7 @@ private:
     // list of HTML filters
     static wxList m_Filters;
 
     // list of HTML filters
     static wxList m_Filters;
 
-    DECLARE_NO_COPY_CLASS(wxHtmlPrintout)
+    wxDECLARE_NO_COPY_CLASS(wxHtmlPrintout);
 };
 
 
 };
 
 
@@ -221,7 +232,7 @@ class WXDLLIMPEXP_HTML wxHtmlEasyPrinting : public wxObject
 {
 public:
     wxHtmlEasyPrinting(const wxString& name = wxT("Printing"), wxWindow *parentWindow = NULL);
 {
 public:
     wxHtmlEasyPrinting(const wxString& name = wxT("Printing"), wxWindow *parentWindow = NULL);
-    ~wxHtmlEasyPrinting();
+    virtual ~wxHtmlEasyPrinting();
 
     bool PreviewFile(const wxString &htmlfile);
     bool PreviewText(const wxString &htmltext, const wxString& basepath = wxEmptyString);
 
     bool PreviewFile(const wxString &htmlfile);
     bool PreviewText(const wxString &htmltext, const wxString& basepath = wxEmptyString);
@@ -246,7 +257,7 @@ public:
             // pg is one of wxPAGE_ODD, wxPAGE_EVEN and wx_PAGE_ALL constants.
             // You can set different header/footer for odd and even pages
 
             // pg is one of wxPAGE_ODD, wxPAGE_EVEN and wx_PAGE_ALL constants.
             // You can set different header/footer for odd and even pages
 
-    void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = 0);
+    void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = 0);
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used)
 
     // Sets font sizes to be relative to the given size or the system
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used)
 
     // Sets font sizes to be relative to the given size or the system
@@ -260,6 +271,11 @@ public:
             // return page setting data objects.
             // (You can set their parameters.)
 
             // return page setting data objects.
             // (You can set their parameters.)
 
+    wxWindow* GetParentWindow() const { return m_ParentWindow; }
+            // get the parent window
+    void SetParentWindow(wxWindow* window) { m_ParentWindow = window; }
+            // set the parent window
+
 protected:
     virtual wxHtmlPrintout *CreatePrintout();
     virtual bool DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2);
 protected:
     virtual wxHtmlPrintout *CreatePrintout();
     virtual bool DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2);
@@ -283,7 +299,7 @@ private:
     wxString m_Headers[2], m_Footers[2];
     wxWindow *m_ParentWindow;
 
     wxString m_Headers[2], m_Footers[2];
     wxWindow *m_ParentWindow;
 
-    DECLARE_NO_COPY_CLASS(wxHtmlEasyPrinting)
+    wxDECLARE_NO_COPY_CLASS(wxHtmlEasyPrinting);
 };
 
 
 };