]> git.saurik.com Git - wxWidgets.git/commitdiff
Added NormalizeFontSizes which will set the html font sizes based on
authorRobin Dunn <robin@alldunn.com>
Thu, 5 Aug 2004 23:59:44 +0000 (23:59 +0000)
committerRobin Dunn <robin@alldunn.com>
Thu, 5 Aug 2004 23:59:44 +0000 (23:59 +0000)
the size of a system font.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/html/htmlwin.h
include/wx/html/htmprint.h
include/wx/html/winpars.h
src/html/htmlwin.cpp
src/html/htmprint.cpp
src/html/winpars.cpp
wxPython/src/html.i

index adefe1fce27001d7cb5b623815ebffb385321c42..62f044657310a876a5a7611d5aebf68c0c7a35ed 100644 (file)
@@ -130,6 +130,9 @@ public:
     void SetFonts(wxString normal_face, wxString fixed_face,
                   const int *sizes = NULL);
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     // Sets space between text and window borders.
     void SetBorders(int b) {m_Borders = b;}
 
index c80acd66559e59d4cf10f1b063d32c7a28237958..e2a27bc59b8d0e5d57af47f648805266dd2977ea 100644 (file)
@@ -59,6 +59,9 @@ public:
     // 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);
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+
     // [x,y] is position of upper-left corner of printing rectangle (see SetSize)
     // from is y-coordinate of the very first visible cell
     // to is y-coordinate of the next following page break, if any
@@ -142,6 +145,9 @@ public:
     // 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);
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+
     void SetMargins(float top = 25.2, float bottom = 25.2, float left = 25.2, float right = 25.2, 
                     float spaces = 5);
             // sets margins in milimeters. Defaults to 1 inch for margins and 0.5cm for space
@@ -237,6 +243,9 @@ public:
     void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = 0);
     // Sets fonts to be used when displaying HTML page. (if size null then default sizes used)
 
+    void NormalizeFontSizes(int size=-1);
+    // Sets font sizes to be relative to the given size or the system default size
+    
     wxPrintData *GetPrintData();
     wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;}
             // return page setting data objects. 
index 24ed74b2709f2bbe5317413225698dd15132e44e..67217628f8734c3832247d826596265162a300e7 100644 (file)
@@ -72,6 +72,9 @@ public:
     // 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);
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     // Adds tags module. see wxHtmlTagsModule for details.
     static void AddModule(wxHtmlTagsModule *module);
 
index eb97f6d3d986e666f75b983b281d05888b150fac..0068fec835793f4927829c8fda4ea58846001ea5 100644 (file)
 #include "wx/dataobj.h"
 #include "wx/timer.h"
 #include "wx/dcmemory.h"
+#include "wx/settings.h"
 
 #include "wx/arrimpl.cpp"
 #include "wx/listimpl.cpp"
 
 
-
 #if wxUSE_CLIPBOARD
 // ----------------------------------------------------------------------------
 // wxHtmlWinAutoScrollTimer: the timer used to generate a stream of scroll
@@ -249,6 +249,22 @@ void wxHtmlWindow::SetFonts(wxString normal_face, wxString fixed_face, const int
     if (!op.IsEmpty()) LoadPage(op);
 }
 
+void wxHtmlWindow::NormalizeFontSizes(int size)
+{
+    int f_sizes[7];
+    if (size == -1)
+        size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
+
+    f_sizes[0] = int(size * 0.6);
+    f_sizes[1] = int(size * 0.8);
+    f_sizes[2] = size;
+    f_sizes[3] = int(size * 1.2);
+    f_sizes[4] = int(size * 1.4);
+    f_sizes[5] = int(size * 1.6);
+    f_sizes[6] = int(size * 1.8);
+    
+    SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+}
 
 
 bool wxHtmlWindow::SetPage(const wxString& source)
index 720bde4849a338cdbfaa1837e0741d7996e52110..800ca10d6632b7014a5e681228c0641786335c4a 100644 (file)
@@ -37,6 +37,7 @@
 #include "wx/wxhtml.h"
 #include "wx/wfstream.h"
 #include "wx/module.h"
+#include "wx/settings.h"
 
 
 //--------------------------------------------------------------------------------
@@ -101,6 +102,24 @@ void wxHtmlDCRenderer::SetFonts(wxString normal_face, wxString fixed_face,
 }
 
 
+void wxHtmlDCRenderer::NormalizeFontSizes(int size)
+{
+    int f_sizes[7];
+    if (size == -1)
+        size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
+
+    f_sizes[0] = int(size * 0.6);
+    f_sizes[1] = int(size * 0.8);
+    f_sizes[2] = size;
+    f_sizes[3] = int(size * 1.2);
+    f_sizes[4] = int(size * 1.4);
+    f_sizes[5] = int(size * 1.6);
+    f_sizes[6] = int(size * 1.8);
+    
+    SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+}
+
+
 int wxHtmlDCRenderer::Render(int x, int y, int from, int dont_render, int to, int *known_pagebreaks, int number_of_pages)
 {
     int pbreak, hght;
@@ -447,6 +466,24 @@ void wxHtmlPrintout::SetFonts(wxString normal_face, wxString fixed_face,
 }
 
 
+void wxHtmlPrintout::NormalizeFontSizes(int size)
+{
+    int f_sizes[7];
+    if (size == -1)
+        size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
+
+    f_sizes[0] = int(size * 0.6);
+    f_sizes[1] = int(size * 0.8);
+    f_sizes[2] = size;
+    f_sizes[3] = int(size * 1.2);
+    f_sizes[4] = int(size * 1.4);
+    f_sizes[5] = int(size * 1.6);
+    f_sizes[6] = int(size * 1.8);
+    
+    SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+}
+
+
 
 //----------------------------------------------------------------------------
 // wxHtmlEasyPrinting
@@ -634,6 +671,23 @@ void wxHtmlEasyPrinting::SetFonts(wxString normal_face, wxString fixed_face,
         m_FontsSizes = NULL;
 }
 
+void wxHtmlEasyPrinting::NormalizeFontSizes(int size)
+{
+    int f_sizes[7];
+    if (size == -1)
+        size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
+
+    f_sizes[0] = int(size * 0.6);
+    f_sizes[1] = int(size * 0.8);
+    f_sizes[2] = size;
+    f_sizes[3] = int(size * 1.2);
+    f_sizes[4] = int(size * 1.4);
+    f_sizes[5] = int(size * 1.6);
+    f_sizes[6] = int(size * 1.8);
+    
+    SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+}
+
 
 wxHtmlPrintout *wxHtmlEasyPrinting::CreatePrintout()
 {
index e994399b8b4cfdc93638b85d3624213aab544b91..77769c411f2e9f44480e97780230d7710888f8ed 100644 (file)
@@ -154,6 +154,23 @@ void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face,
                     }
 }
 
+void wxHtmlWinParser::NormalizeFontSizes(int size)
+{
+    int f_sizes[7];
+    if (size == -1)
+        size = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize();
+
+    f_sizes[0] = int(size * 0.6);
+    f_sizes[1] = int(size * 0.8);
+    f_sizes[2] = size;
+    f_sizes[3] = int(size * 1.2);
+    f_sizes[4] = int(size * 1.4);
+    f_sizes[5] = int(size * 1.6);
+    f_sizes[6] = int(size * 1.8);
+    
+    SetFonts(wxEmptyString, wxEmptyString, f_sizes);
+}
+
 void wxHtmlWinParser::InitParser(const wxString& source)
 {
     wxHtmlParser::InitParser(source);
index 403878e34de989f73edc3f2b5851f6afd9680898..42fdb2f0bd887a59e3422d3980b20fdb09a1c7ec 100644 (file)
@@ -199,6 +199,9 @@ public:
         }
     }
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     wxHtmlContainerCell* GetContainer();
     wxHtmlContainerCell* OpenContainer();
     wxHtmlContainerCell *SetContainer(wxHtmlContainerCell *c);
@@ -865,6 +868,9 @@ public:
         }
     }
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     DocDeclStr(
         void, SetTitle(const wxString& title),
         "", "");
@@ -952,6 +958,10 @@ public:
                 delete [] temp;
         }
     }
+
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     int Render(int x, int y, int from = 0, int dont_render = False, int to = INT_MAX,
                //int *known_pagebreaks = NULL, int number_of_pages = 0
                int* choices=NULL, int LCOUNT = 0
@@ -993,6 +1003,10 @@ public:
                 delete [] temp;
         }
     }
+
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     void SetMargins(float top = 25.2, float bottom = 25.2,
                     float left = 25.2, float right = 25.2,
                     float spaces = 5);
@@ -1033,6 +1047,9 @@ public:
         }
     }
 
+    // Sets font sizes to be relative to the given size or the system default size
+    void NormalizeFontSizes(int size=-1);
+    
     wxPrintData *GetPrintData() {return m_PrintData;}
     wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;}