X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fc12b1f12a26bfa569bbfe2af10af3e5352b6fd4..ffc28384ca01bf09551aeca9d7e22edf5e2ea356:/src/html/helpwnd.cpp diff --git a/src/html/helpwnd.cpp b/src/html/helpwnd.cpp index 3518cb3b2d..a8e58cbf5f 100644 --- a/src/html/helpwnd.cpp +++ b/src/html/helpwnd.cpp @@ -60,6 +60,11 @@ // what is considered "small index"? #define INDEX_IS_SMALL 1000 +// minimum width for content tree and index +// (we cannot let minimum size be determined from content, else long titles +// make the help frame unusable) +const wxCoord CONTENT_TREE_INDEX_MIN_WIDTH = 150; + /* Motif defines this as a macro */ #ifdef Below #undef Below @@ -115,15 +120,13 @@ public: SetStandardFonts(); } - void OnLink(wxHtmlLinkEvent& ev) + virtual bool LoadPage(const wxString& location) { - const wxMouseEvent *e = ev.GetLinkInfo().GetEvent(); - if (e == NULL || e->LeftUp()) - m_Window->NotifyPageChanged(); + if ( !wxHtmlWindow::LoadPage(location) ) + return false; - // skip the event so that normal processing (i.e. following the link) - // is done: - ev.Skip(); + m_Window->NotifyPageChanged(); + return true; } // Returns full location with anchor (helper) @@ -145,13 +148,8 @@ private: wxHtmlHelpWindow *m_Window; wxDECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow); - DECLARE_EVENT_TABLE() }; -BEGIN_EVENT_TABLE(wxHtmlHelpHtmlWindow, wxHtmlWindow) - EVT_HTML_LINK_CLICKED(wxID_ANY, wxHtmlHelpHtmlWindow::OnLink) -END_EVENT_TABLE() - //--------------------------------------------------------------------------- // wxHtmlHelpWindow::m_mergedIndex @@ -358,8 +356,7 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id, #ifdef __WXMSW__ wxBorder htmlWindowBorder = GetDefaultBorder(); - if (htmlWindowBorder == wxBORDER_SUNKEN) - htmlWindowBorder = wxBORDER_SIMPLE; + htmlWindowBorder = wxBORDER_THEME; #else wxBorder htmlWindowBorder = wxBORDER_SUNKEN; #endif @@ -417,10 +414,16 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id, if ( helpStyle & wxHF_BOOKMARKS ) { + long comboStyle = wxCB_READONLY; +#ifndef __WXMAC__ + // Not supported on OSX/Cocoa presently + comboStyle |= wxCB_SORT; + +#endif m_Bookmarks = new wxComboBox(dummy, wxID_HTML_BOOKMARKSLIST, wxEmptyString, wxDefaultPosition, wxDefaultSize, - 0, NULL, wxCB_READONLY | wxCB_SORT); + 0, NULL, comboStyle); m_Bookmarks->Append(_("(bookmarks)")); for (unsigned i = 0; i < m_BookmarksNames.GetCount(); i++) m_Bookmarks->Append(m_BookmarksNames[i]); @@ -706,7 +709,6 @@ bool wxHtmlHelpWindow::Display(const wxString& x) if (!url.empty()) { m_HtmlWin->LoadPage(url); - NotifyPageChanged(); return true; } @@ -719,7 +721,6 @@ bool wxHtmlHelpWindow::Display(const int id) if (!url.empty()) { m_HtmlWin->LoadPage(url); - NotifyPageChanged(); return true; } @@ -782,7 +783,6 @@ void wxHtmlHelpWindow::DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it) if (!it->items[0]->page.empty()) { m_HtmlWin->LoadPage(it->items[0]->GetFullPath()); - NotifyPageChanged(); } } else @@ -819,7 +819,6 @@ void wxHtmlHelpWindow::DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it) if (dlg.ShowModal() == wxID_OK) { m_HtmlWin->LoadPage(it->items[dlg.GetSelection()]->GetFullPath()); - NotifyPageChanged(); } } } @@ -928,7 +927,6 @@ bool wxHtmlHelpWindow::KeywordSearch(const wxString& keyword, if (it) { m_HtmlWin->LoadPage(it->GetFullPath()); - NotifyPageChanged(); } break; } @@ -1028,6 +1026,9 @@ void wxHtmlHelpWindow::CreateContents() imaged[it->level] = true; } } + + m_ContentsBox->SetMinSize(wxSize(CONTENT_TREE_INDEX_MIN_WIDTH, + m_ContentsBox->GetMinHeight())); } void wxHtmlHelpWindow::CreateIndex() @@ -1051,6 +1052,9 @@ void wxHtmlHelpWindow::CreateIndex() for (size_t i = 0; i < cnt; i++) m_IndexList->Append((*m_mergedIndex)[i].name, (char*)(&(*m_mergedIndex)[i])); + + m_IndexList->SetMinSize(wxSize(CONTENT_TREE_INDEX_MIN_WIDTH, + m_IndexList->GetMinHeight())); } void wxHtmlHelpWindow::CreateSearch() @@ -1390,12 +1394,10 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event) { case wxID_HTML_BACK : m_HtmlWin->HistoryBack(); - NotifyPageChanged(); break; case wxID_HTML_FORWARD : m_HtmlWin->HistoryForward(); - NotifyPageChanged(); break; case wxID_HTML_UP : @@ -1411,7 +1413,6 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event) if (!it.page.empty()) { m_HtmlWin->LoadPage(it.GetFullPath()); - NotifyPageChanged(); } } } @@ -1440,10 +1441,7 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event) if (ind >= 0) { if (!it->page.empty()) - { m_HtmlWin->LoadPage(it->GetFullPath()); - NotifyPageChanged(); - } } } } @@ -1465,10 +1463,7 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event) while (contents[idx].GetFullPath() == page) idx++; if (!contents[idx].page.empty()) - { m_HtmlWin->LoadPage(contents[idx].GetFullPath()); - NotifyPageChanged(); - } } } break; @@ -1733,7 +1728,6 @@ void wxHtmlHelpWindow::OnSearchSel(wxCommandEvent& WXUNUSED(event)) { if (!it->page.empty()) m_HtmlWin->LoadPage(it->GetFullPath()); - NotifyPageChanged(); } } @@ -1752,7 +1746,6 @@ void wxHtmlHelpWindow::OnBookmarksSel(wxCommandEvent& WXUNUSED(event)) if (!str.empty() && str != _("(bookmarks)") && idx != wxNOT_FOUND) { m_HtmlWin->LoadPage(m_BookmarksPages[(size_t)idx]); - NotifyPageChanged(); } }