// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
-// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// 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
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)
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
wxSizer *navigSizer = NULL;
#ifdef __WXMSW__
- wxBorder htmlWindowBorder = GetDefaultBorder();
- htmlWindowBorder = wxBORDER_THEME;
+ wxBorder htmlWindowBorder = wxBORDER_THEME;
#else
wxBorder htmlWindowBorder = wxBORDER_SUNKEN;
#endif
long splitterStyle = wxSP_3D;
// Drawing moving sash can cause problems on wxMac
#ifdef __WXMAC__
+ splitterStyle = 0; // 3D style looks poor on Mac
splitterStyle |= wxSP_LIVE_UPDATE;
#endif
m_Splitter = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, splitterStyle);
if (!url.empty())
{
m_HtmlWin->LoadPage(url);
- NotifyPageChanged();
return true;
}
if (!url.empty())
{
m_HtmlWin->LoadPage(url);
- NotifyPageChanged();
return true;
}
if (!it->items[0]->page.empty())
{
m_HtmlWin->LoadPage(it->items[0]->GetFullPath());
- NotifyPageChanged();
}
}
else
if (dlg.ShowModal() == wxID_OK)
{
m_HtmlWin->LoadPage(it->items[dlg.GetSelection()]->GetFullPath());
- NotifyPageChanged();
}
}
}
if (it)
{
m_HtmlWin->LoadPage(it->GetFullPath());
- NotifyPageChanged();
}
break;
}
imaged[it->level] = true;
}
}
+
+ m_ContentsBox->SetMinSize(wxSize(CONTENT_TREE_INDEX_MIN_WIDTH,
+ m_ContentsBox->GetMinHeight()));
}
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()
{
case wxID_HTML_BACK :
m_HtmlWin->HistoryBack();
- NotifyPageChanged();
break;
case wxID_HTML_FORWARD :
m_HtmlWin->HistoryForward();
- NotifyPageChanged();
break;
case wxID_HTML_UP :
if (!it.page.empty())
{
m_HtmlWin->LoadPage(it.GetFullPath());
- NotifyPageChanged();
}
}
}
if (ind >= 0)
{
if (!it->page.empty())
- {
m_HtmlWin->LoadPage(it->GetFullPath());
- NotifyPageChanged();
- }
}
}
}
while (contents[idx].GetFullPath() == page) idx++;
if (!contents[idx].page.empty())
- {
m_HtmlWin->LoadPage(contents[idx].GetFullPath());
- NotifyPageChanged();
- }
}
}
break;
{
if (!it->page.empty())
m_HtmlWin->LoadPage(it->GetFullPath());
- NotifyPageChanged();
}
}
if (!str.empty() && str != _("(bookmarks)") && idx != wxNOT_FOUND)
{
m_HtmlWin->LoadPage(m_BookmarksPages[(size_t)idx]);
- NotifyPageChanged();
}
}