X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/322a5b45fe844440a61c197532f592278fc7f716..8998887c224924d5f6f4601597c162d6429495e1:/src/html/helpfrm.cpp diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp index cfd698380d..71a6bcf996 100644 --- a/src/html/helpfrm.cpp +++ b/src/html/helpfrm.cpp @@ -59,6 +59,7 @@ #include "wx/spinctrl.h" #include "wx/dynarray.h" #include "wx/choicdlg.h" +#include "wx/settings.h" // what is considered "small index"? #define INDEX_IS_SMALL 100 @@ -110,7 +111,11 @@ class wxHtmlHelpHashData : public wxObject class wxHtmlHelpHtmlWindow : public wxHtmlWindow { public: - wxHtmlHelpHtmlWindow(wxHtmlHelpFrame *fr, wxWindow *parent) : wxHtmlWindow(parent), m_Frame(fr) {} + wxHtmlHelpHtmlWindow(wxHtmlHelpFrame *fr, wxWindow *parent) + : wxHtmlWindow(parent), m_Frame(fr) + { + SetStandardFonts(); + } virtual void OnLinkClicked(const wxHtmlLinkInfo& link) { @@ -298,9 +303,15 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, m_hfStyle = style; wxImageList *ContentsImageList = new wxImageList(16, 16); - ContentsImageList->Add(wxArtProvider::GetIcon(wxART_HELP_BOOK, wxART_HELP_BROWSER)); - ContentsImageList->Add(wxArtProvider::GetIcon(wxART_HELP_FOLDER, wxART_HELP_BROWSER)); - ContentsImageList->Add(wxArtProvider::GetIcon(wxART_HELP_PAGE, wxART_HELP_BROWSER)); + ContentsImageList->Add(wxArtProvider::GetIcon(wxART_HELP_BOOK, + wxART_HELP_BROWSER, + wxSize(16, 16))); + ContentsImageList->Add(wxArtProvider::GetIcon(wxART_HELP_FOLDER, + wxART_HELP_BROWSER, + wxSize(16, 16))); + ContentsImageList->Add(wxArtProvider::GetIcon(wxART_HELP_PAGE, + wxART_HELP_BROWSER, + wxSize(16, 16))); // Do the config in two steps. We read the HtmlWindow customization after we // create the window. @@ -338,7 +349,9 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, int notebook_page = 0; +#if wxUSE_STATUSBAR CreateStatusBar(); +#endif // wxUSE_STATUSBAR #if wxUSE_TOOLBAR // toolbar? @@ -377,7 +390,9 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, } m_HtmlWin->SetRelatedFrame(this, m_TitleFormat); +#if wxUSE_STATUSBAR m_HtmlWin->SetRelatedStatusBar(0); +#endif // wxUSE_STATUSBAR if ( m_Config ) m_HtmlWin->ReadCustomization(m_Config, m_ConfigRoot); @@ -405,10 +420,10 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, wxBitmapButton *bmpbt1, *bmpbt2; bmpbt1 = new wxBitmapButton(dummy, wxID_HTML_BOOKMARKSADD, wxArtProvider::GetBitmap(wxART_ADD_BOOKMARK, - wxART_HELP_BROWSER)); + wxART_BUTTON)); bmpbt2 = new wxBitmapButton(dummy, wxID_HTML_BOOKMARKSREMOVE, wxArtProvider::GetBitmap(wxART_DEL_BOOKMARK, - wxART_HELP_BROWSER)); + wxART_BUTTON)); #if wxUSE_TOOLTIPS bmpbt1->SetToolTip(_("Add current page to bookmarks")); bmpbt2->SetToolTip(_("Remove current page from bookmarks")); @@ -555,6 +570,8 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, wxHtmlHelpFrame::~wxHtmlHelpFrame() { + delete m_mergedIndex; + // PopEventHandler(); // wxhtmlhelpcontroller (not any more!) if (m_DataCreated) delete m_Data; @@ -575,23 +592,23 @@ wxHtmlHelpFrame::~wxHtmlHelpFrame() void wxHtmlHelpFrame::AddToolbarButtons(wxToolBar *toolBar, int style) { wxBitmap wpanelBitmap = - wxArtProvider::GetBitmap(wxART_HELP_SIDE_PANEL, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_HELP_SIDE_PANEL, wxART_TOOLBAR); wxBitmap wbackBitmap = - wxArtProvider::GetBitmap(wxART_GO_BACK, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_GO_BACK, wxART_TOOLBAR); wxBitmap wforwardBitmap = - wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_TOOLBAR); wxBitmap wupnodeBitmap = - wxArtProvider::GetBitmap(wxART_GO_TO_PARENT, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_GO_TO_PARENT, wxART_TOOLBAR); wxBitmap wupBitmap = - wxArtProvider::GetBitmap(wxART_GO_UP, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_GO_UP, wxART_TOOLBAR); wxBitmap wdownBitmap = - wxArtProvider::GetBitmap(wxART_GO_DOWN, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_GO_DOWN, wxART_TOOLBAR); wxBitmap wopenBitmap = - wxArtProvider::GetBitmap(wxART_FILE_OPEN, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_FILE_OPEN, wxART_TOOLBAR); wxBitmap wprintBitmap = - wxArtProvider::GetBitmap(wxART_PRINT, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_PRINT, wxART_TOOLBAR); wxBitmap woptionsBitmap = - wxArtProvider::GetBitmap(wxART_HELP_SETTINGS, wxART_HELP_BROWSER); + wxArtProvider::GetBitmap(wxART_HELP_SETTINGS, wxART_TOOLBAR); wxASSERT_MSG( (wpanelBitmap.Ok() && wbackBitmap.Ok() && wforwardBitmap.Ok() && wupnodeBitmap.Ok() && @@ -1200,9 +1217,9 @@ public: wxBoxSizer *sizer2 = new wxBoxSizer(wxHORIZONTAL); wxButton *ok; - sizer2->Add(ok = new wxButton(this, wxID_OK, _("OK")), 0, wxALL, 10); + sizer2->Add(ok = new wxButton(this, wxID_OK), 0, wxALL, 10); ok->SetDefault(); - sizer2->Add(new wxButton(this, wxID_CANCEL, _("Cancel")), 0, wxALL, 10); + sizer2->Add(new wxButton(this, wxID_CANCEL), 0, wxALL, 10); topsizer->Add(sizer2, 0, wxALIGN_RIGHT); SetSizer(topsizer); @@ -1273,7 +1290,7 @@ void wxHtmlHelpFrame::OptionsDialog() enu.EnumerateFacenames(); m_NormalFonts = new wxArrayString; *m_NormalFonts = *enu.GetFacenames(); - m_NormalFonts->Sort(wxStringSortAscending); + m_NormalFonts->Sort(); // ascending sort } if (m_FixedFonts == NULL) { @@ -1281,7 +1298,7 @@ void wxHtmlHelpFrame::OptionsDialog() enu.EnumerateFacenames(wxFONTENCODING_SYSTEM, true /*enum fixed width only*/); m_FixedFonts = new wxArrayString; *m_FixedFonts = *enu.GetFacenames(); - m_FixedFonts->Sort(wxStringSortAscending); + m_FixedFonts->Sort(); // ascending sort } // VS: We want to show the font that is actually used by wxHtmlWindow. @@ -1628,8 +1645,13 @@ void wxHtmlHelpFrame::OnIndexFind(wxCommandEvent& event) if (displ++ == 0) { - m_IndexList->SetSelection(0); - DisplayIndexItem(&index[i]); + // don't automatically show topic selector if this + // item points to multiple pages: + if (index[i].items.size() == 1) + { + m_IndexList->SetSelection(0); + DisplayIndexItem(&index[i]); + } } // if this is nested item of the index, show its parent(s) @@ -1647,6 +1669,19 @@ void wxHtmlHelpFrame::OnIndexFind(wxCommandEvent& event) } else break; } + + // finally, it the item we just added is itself a parent for + // other items, show them as well, because they are refinements + // of the displayed index entry (i.e. it is implicitly contained + // in them: "foo" with parent "bar" reads as "bar, foo"): + short int level = index[i].items[0]->level; + i++; + while (i < cnt && index[i].items[0]->level > level) + { + m_IndexList->Append(index[i].name, (char*)(&index[i])); + i++; + } + i--; } } @@ -1673,7 +1708,12 @@ void wxHtmlHelpFrame::OnIndexAll(wxCommandEvent& WXUNUSED(event)) m_IndexList->Append(index[i].name, (char*)(&index[i])); if (first) { - DisplayIndexItem(&index[i]); + // don't automatically show topic selector if this + // item points to multiple pages: + if (index[i].items.size() == 1) + { + DisplayIndexItem(&index[i]); + } first = false; } }