]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/helpwnd.cpp
Allow passing multi-line strings to wxDC::DrawText(), even under MSW.
[wxWidgets.git] / src / html / helpwnd.cpp
index e66a5be432295955a52c950e2b14225abed58e37..1cc2f9d8f9ca2b8d215ee40c039f5ee6b4e78ae3 100644 (file)
@@ -144,7 +144,7 @@ public:
 private:
     wxHtmlHelpWindow *m_Window;
 
 private:
     wxHtmlHelpWindow *m_Window;
 
-    DECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow)
+    wxDECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow);
     DECLARE_EVENT_TABLE()
 };
 
     DECLARE_EVENT_TABLE()
 };
 
@@ -184,7 +184,7 @@ void wxHtmlHelpWindow::UpdateMergedIndex()
     for (size_t i = 0; i < len; i++)
     {
         const wxHtmlHelpDataItem& item = items[i];
     for (size_t i = 0; i < len; i++)
     {
         const wxHtmlHelpDataItem& item = items[i];
-        wxASSERT_MSG( item.level < 128, _T("nested index entries too deep") );
+        wxASSERT_MSG( item.level < 128, wxT("nested index entries too deep") );
 
         if (history[item.level] &&
             history[item.level]->items[0]->name == item.name)
 
         if (history[item.level] &&
             history[item.level]->items[0]->name == item.name)
@@ -273,8 +273,10 @@ void wxHtmlHelpWindow::Init(wxHtmlHelpData* data)
 
     m_mergedIndex = NULL;
 
 
     m_mergedIndex = NULL;
 
+#if wxUSE_CONFIG
     m_Config = NULL;
     m_ConfigRoot = wxEmptyString;
     m_Config = NULL;
     m_ConfigRoot = wxEmptyString;
+#endif // wxUSE_CONFIG
 
     m_Cfg.x = m_Cfg.y = wxDefaultCoord;
     m_Cfg.w = 700;
 
     m_Cfg.x = m_Cfg.y = wxDefaultCoord;
     m_Cfg.w = 700;
@@ -315,10 +317,12 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id,
 {
     m_hfStyle = helpStyle;
 
 {
     m_hfStyle = helpStyle;
 
+#if wxUSE_CONFIG
     // Do the config in two steps. We read the HtmlWindow customization after we
     // create the window.
     if (m_Config)
         ReadCustomization(m_Config, m_ConfigRoot);
     // Do the config in two steps. We read the HtmlWindow customization after we
     // create the window.
     if (m_Config)
         ReadCustomization(m_Config, m_ConfigRoot);
+#endif // wxUSE_CONFIG
 
     wxWindow::Create(parent, id, pos, size, style, wxT("wxHtmlHelp"));
 
 
     wxWindow::Create(parent, id, pos, size, style, wxT("wxHtmlHelp"));
 
@@ -364,7 +368,12 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id,
     {
         // traditional help controller; splitter window with html page on the
         // right and a notebook containing various pages on the left
     {
         // traditional help controller; splitter window with html page on the
         // right and a notebook containing various pages on the left
-        m_Splitter = new wxSplitterWindow(this);
+        long splitterStyle = wxSP_3D;
+        // Drawing moving sash can cause problems on wxMac
+#ifdef __WXMAC__
+        splitterStyle |= wxSP_LIVE_UPDATE;
+#endif
+        m_Splitter = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, splitterStyle);
 
         topWindowSizer->Add(m_Splitter, 1, wxEXPAND);
 
 
         topWindowSizer->Add(m_Splitter, 1, wxEXPAND);
 
@@ -388,8 +397,10 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id,
         topWindowSizer->Add(m_HtmlWin, 1, wxEXPAND);
     }
 
         topWindowSizer->Add(m_HtmlWin, 1, wxEXPAND);
     }
 
+#if wxUSE_CONFIG
     if ( m_Config )
         m_HtmlWin->ReadCustomization(m_Config, m_ConfigRoot);
     if ( m_Config )
         m_HtmlWin->ReadCustomization(m_Config, m_ConfigRoot);
+#endif // wxUSE_CONFIG
 
     // contents tree panel?
     if ( helpStyle & wxHF_CONTENTS )
 
     // contents tree panel?
     if ( helpStyle & wxHF_CONTENTS )
@@ -564,10 +575,12 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id,
     // showtime
     if ( m_NavigPan && m_Splitter )
     {
     // showtime
     if ( m_NavigPan && m_Splitter )
     {
-        if (m_NavigPan)
-            m_Splitter->SetMinimumPaneSize(m_NavigPan->GetBestSize().x);
-        else
-            m_Splitter->SetMinimumPaneSize(20);
+        // The panel will have its own min size which the splitter
+        // should respect
+        //if (m_NavigPan)
+        //    m_Splitter->SetMinimumPaneSize(m_NavigPan->GetBestSize().x);
+        //else
+        m_Splitter->SetMinimumPaneSize(20);
 
         if ( m_Cfg.navig_on )
         {
 
         if ( m_Cfg.navig_on )
         {
@@ -584,7 +597,7 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id,
     // Reduce flicker by updating the splitter pane sizes before the
     // frame is shown
     wxSizeEvent sizeEvent(GetSize(), GetId());
     // Reduce flicker by updating the splitter pane sizes before the
     // frame is shown
     wxSizeEvent sizeEvent(GetSize(), GetId());
-    ProcessEvent(sizeEvent);
+    GetEventHandler()->ProcessEvent(sizeEvent);
 
     if (m_Splitter)
         m_Splitter->UpdateSize();
 
     if (m_Splitter)
         m_Splitter->UpdateSize();
@@ -903,7 +916,7 @@ bool wxHtmlHelpWindow::KeywordSearch(const wxString& keyword,
         switch ( mode )
         {
             default:
         switch ( mode )
         {
             default:
-                wxFAIL_MSG( _T("unknown help search mode") );
+                wxFAIL_MSG( wxT("unknown help search mode") );
                 // fall back
 
             case wxHELP_SEARCH_ALL:
                 // fall back
 
             case wxHELP_SEARCH_ALL:
@@ -1062,6 +1075,7 @@ void wxHtmlHelpWindow::RefreshLists()
     CreateSearch();
 }
 
     CreateSearch();
 }
 
+#if wxUSE_CONFIG
 void wxHtmlHelpWindow::ReadCustomization(wxConfigBase *cfg, const wxString& path)
 {
     wxString oldpath;
 void wxHtmlHelpWindow::ReadCustomization(wxConfigBase *cfg, const wxString& path)
 {
     wxString oldpath;
@@ -1070,7 +1084,7 @@ void wxHtmlHelpWindow::ReadCustomization(wxConfigBase *cfg, const wxString& path
     if (path != wxEmptyString)
     {
         oldpath = cfg->GetPath();
     if (path != wxEmptyString)
     {
         oldpath = cfg->GetPath();
-        cfg->SetPath(_T("/") + path);
+        cfg->SetPath(wxT("/") + path);
     }
 
     m_Cfg.navig_on = cfg->Read(wxT("hcNavigPanel"), m_Cfg.navig_on) != 0;
     }
 
     m_Cfg.navig_on = cfg->Read(wxT("hcNavigPanel"), m_Cfg.navig_on) != 0;
@@ -1128,7 +1142,7 @@ void wxHtmlHelpWindow::WriteCustomization(wxConfigBase *cfg, const wxString& pat
     if (path != wxEmptyString)
     {
         oldpath = cfg->GetPath();
     if (path != wxEmptyString)
     {
         oldpath = cfg->GetPath();
-        cfg->SetPath(_T("/") + path);
+        cfg->SetPath(wxT("/") + path);
     }
 
     cfg->Write(wxT("hcNavigPanel"), m_Cfg.navig_on);
     }
 
     cfg->Write(wxT("hcNavigPanel"), m_Cfg.navig_on);
@@ -1167,6 +1181,7 @@ void wxHtmlHelpWindow::WriteCustomization(wxConfigBase *cfg, const wxString& pat
     if (path != wxEmptyString)
         cfg->SetPath(oldpath);
 }
     if (path != wxEmptyString)
         cfg->SetPath(oldpath);
 }
+#endif // wxUSE_CONFIG
 
 static void SetFontsToHtmlWin(wxHtmlWindow *win, const wxString& scalf, const wxString& fixf, int size)
 {
 
 static void SetFontsToHtmlWin(wxHtmlWindow *win, const wxString& scalf, const wxString& fixf, int size)
 {
@@ -1208,7 +1223,7 @@ public:
                       0, NULL, wxCB_DROPDOWN | wxCB_READONLY));
 
         sizer->Add(FontSize = new wxSpinCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
                       0, NULL, wxCB_DROPDOWN | wxCB_READONLY));
 
         sizer->Add(FontSize = new wxSpinCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
-                      wxDefaultSize, wxSP_ARROW_KEYS, 2, 100, 2, _T("wxSpinCtrl")));
+                      wxDefaultSize, wxSP_ARROW_KEYS, 2, 100, 2, wxT("wxSpinCtrl")));
 
         topsizer->Add(sizer, 0, wxLEFT|wxRIGHT|wxTOP, 10);
 
 
         topsizer->Add(sizer, 0, wxLEFT|wxRIGHT|wxTOP, 10);
 
@@ -1244,25 +1259,25 @@ public:
 
         wxString content(_("font size"));
 
 
         wxString content(_("font size"));
 
-        content = _T("<font size=-2>") + content + _T(" -2</font><br>")
-                  _T("<font size=-1>") + content + _T(" -1</font><br>")
-                  _T("<font size=+0>") + content + _T(" +0</font><br>")
-                  _T("<font size=+1>") + content + _T(" +1</font><br>")
-                  _T("<font size=+2>") + content + _T(" +2</font><br>")
-                  _T("<font size=+3>") + content + _T(" +3</font><br>")
-                  _T("<font size=+4>") + content + _T(" +4</font><br>") ;
+        content = wxT("<font size=-2>") + content + wxT(" -2</font><br>")
+                  wxT("<font size=-1>") + content + wxT(" -1</font><br>")
+                  wxT("<font size=+0>") + content + wxT(" +0</font><br>")
+                  wxT("<font size=+1>") + content + wxT(" +1</font><br>")
+                  wxT("<font size=+2>") + content + wxT(" +2</font><br>")
+                  wxT("<font size=+3>") + content + wxT(" +3</font><br>")
+                  wxT("<font size=+4>") + content + wxT(" +4</font><br>") ;
 
 
-        content = wxString( _T("<html><body><table><tr><td>") ) +
+        content = wxString( wxT("<html><body><table><tr><td>") ) +
                   _("Normal face<br>and <u>underlined</u>. ") +
                   _("<i>Italic face.</i> ") +
                   _("<b>Bold face.</b> ") +
                   _("<b><i>Bold italic face.</i></b><br>") +
                   content +
                   _("Normal face<br>and <u>underlined</u>. ") +
                   _("<i>Italic face.</i> ") +
                   _("<b>Bold face.</b> ") +
                   _("<b><i>Bold italic face.</i></b><br>") +
                   content +
-                  wxString( _T("</td><td><tt>") ) +
+                  wxString( wxT("</td><td><tt>") ) +
                   _("Fixed size face.<br> <b>bold</b> <i>italic</i> ") +
                   _("<b><i>bold italic <u>underlined</u></i></b><br>") +
                   content +
                   _("Fixed size face.<br> <b>bold</b> <i>italic</i> ") +
                   _("<b><i>bold italic <u>underlined</u></i></b><br>") +
                   content +
-                  _T("</tt></td></tr></table></body></html>");
+                  wxT("</tt></td></tr></table></body></html>");
 
         TestWin->SetPage( content );
     }
 
         TestWin->SetPage( content );
     }
@@ -1277,7 +1292,7 @@ public:
     }
 
     DECLARE_EVENT_TABLE()
     }
 
     DECLARE_EVENT_TABLE()
-    DECLARE_NO_COPY_CLASS(wxHtmlHelpWindowOptionsDialog)
+    wxDECLARE_NO_COPY_CLASS(wxHtmlHelpWindowOptionsDialog);
 };
 
 BEGIN_EVENT_TABLE(wxHtmlHelpWindowOptionsDialog, wxDialog)
 };
 
 BEGIN_EVENT_TABLE(wxHtmlHelpWindowOptionsDialog, wxDialog)
@@ -1522,9 +1537,13 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
                 if (m_Printer == NULL)
                     m_Printer = new wxHtmlEasyPrinting(_("Help Printing"), this);
                 if (!m_HtmlWin->GetOpenedPage())
                 if (m_Printer == NULL)
                     m_Printer = new wxHtmlEasyPrinting(_("Help Printing"), this);
                 if (!m_HtmlWin->GetOpenedPage())
+                {
                     wxLogWarning(_("Cannot print empty page."));
                     wxLogWarning(_("Cannot print empty page."));
+                }
                 else
                 else
+                {
                     m_Printer->PrintFile(m_HtmlWin->GetOpenedPage());
                     m_Printer->PrintFile(m_HtmlWin->GetOpenedPage());
+                }
             }
             break;
 #endif
             }
             break;
 #endif
@@ -1549,11 +1568,11 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
                 if (!s.empty())
                 {
                     wxString ext = s.Right(4).Lower();
                 if (!s.empty())
                 {
                     wxString ext = s.Right(4).Lower();
-                    if (ext == _T(".zip") || ext == _T(".htb") ||
+                    if (ext == wxT(".zip") || ext == wxT(".htb") ||
 #if wxUSE_LIBMSPACK
 #if wxUSE_LIBMSPACK
-                        ext == _T(".chm") ||
+                        ext == wxT(".chm") ||
 #endif
 #endif
-                        ext == _T(".hhp"))
+                        ext == wxT(".hhp"))
                     {
                         wxBusyCursor bcur;
                         m_Data->AddBook(s);
                     {
                         wxBusyCursor bcur;
                         m_Data->AddBook(s);