X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3e5296e75da7937868c3f6a29ab511cf1b3e9133..cfd885695ef3adf16de2a7c9bc7b85f33c80ffbe:/src/html/helpfrm.cpp diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp index 49fee0bbf4..b4cccd4092 100644 --- a/src/html/helpfrm.cpp +++ b/src/html/helpfrm.cpp @@ -177,43 +177,7 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& ti if (style & wxHF_TOOLBAR) { wxToolBar *toolBar = CreateToolBar(wxNO_BORDER | wxTB_HORIZONTAL | wxTB_DOCKABLE); toolBar->SetMargins( 2, 2 ); - - toolBar -> AddTool(wxID_HTML_PANEL, wxBITMAP(wpanel), wxNullBitmap, - FALSE, -1, -1, (wxObject *) NULL, - _("Show/hide navigation panel")); - toolBar -> AddSeparator(); - toolBar -> AddTool(wxID_HTML_BACK, wxBITMAP(wback), wxNullBitmap, - FALSE, -1, -1, (wxObject *) NULL, - _("Go back to the previous HTML page")); - toolBar -> AddTool(wxID_HTML_FORWARD, wxBITMAP(wforward), wxNullBitmap, - FALSE, -1, -1, (wxObject *) NULL, - _("Go forward to the next HTML page")); - toolBar -> AddSeparator(); - - if (style & wxHF_BOOKMARKS) { - m_Bookmarks = new wxComboBox(toolBar, wxID_HTML_BOOKMARKSLIST, wxEmptyString, - wxDefaultPosition, wxSize(300,-1), 0, NULL, wxCB_READONLY | wxCB_SORT); - m_Bookmarks -> Append(_("")); - for (unsigned i = 0; i < m_BookmarksNames.GetCount(); i++) - m_Bookmarks -> Append(m_BookmarksNames[i]); - m_Bookmarks -> SetSelection(0); - toolBar -> AddControl(m_Bookmarks); -#ifdef __WXGTK__ - toolBar -> AddSeparator(); -#endif - toolBar -> AddTool(wxID_HTML_BOOKMARKSADD, wxBITMAP(wbkadd), wxNullBitmap, - FALSE, -1, -1, (wxObject *) NULL, - _("Add current page to bookmarks")); - toolBar -> AddTool(wxID_HTML_BOOKMARKSREMOVE, wxBITMAP(wbkdel), wxNullBitmap, - FALSE, -1, -1, (wxObject *) NULL, - _("Remove current page from bookmarks")); - } - - toolBar -> AddSeparator(); - toolBar -> AddTool(wxID_HTML_OPTIONS, wxBITMAP(woptions), wxNullBitmap, - FALSE, -1, -1, (wxObject *) NULL, - _("Display options dialog")); - + AddToolbarButtons(toolBar, style); toolBar -> Realize(); } @@ -365,7 +329,7 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& ti } m_HtmlWin -> Show(TRUE); - //RefreshLists(); + RefreshLists(); // showtime if (m_NavigPan && m_Splitter) { @@ -390,6 +354,7 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& ti wxHtmlHelpFrame::~wxHtmlHelpFrame() { + PopEventHandler(); // wxhtmlhelpcontroller delete m_ContentsImageList; if (m_DataCreated) delete m_Data; @@ -397,6 +362,48 @@ wxHtmlHelpFrame::~wxHtmlHelpFrame() if (m_FixedFonts) delete m_FixedFonts; } + +void wxHtmlHelpFrame::AddToolbarButtons(wxToolBar *toolBar, int style) +{ + toolBar -> AddTool(wxID_HTML_PANEL, wxBITMAP(wpanel), wxNullBitmap, + FALSE, -1, -1, (wxObject *) NULL, + _("Show/hide navigation panel")); + toolBar -> AddSeparator(); + toolBar -> AddTool(wxID_HTML_BACK, wxBITMAP(wback), wxNullBitmap, + FALSE, -1, -1, (wxObject *) NULL, + _("Go back to the previous HTML page")); + toolBar -> AddTool(wxID_HTML_FORWARD, wxBITMAP(wforward), wxNullBitmap, + FALSE, -1, -1, (wxObject *) NULL, + _("Go forward to the next HTML page")); + toolBar -> AddSeparator(); + + if (style & wxHF_BOOKMARKS) { + m_Bookmarks = new wxComboBox(toolBar, wxID_HTML_BOOKMARKSLIST, wxEmptyString, + wxDefaultPosition, wxSize(300,-1), 0, NULL, wxCB_READONLY | wxCB_SORT); + m_Bookmarks -> Append(_("")); + for (unsigned i = 0; i < m_BookmarksNames.GetCount(); i++) + m_Bookmarks -> Append(m_BookmarksNames[i]); + m_Bookmarks -> SetSelection(0); + toolBar -> AddControl(m_Bookmarks); +#ifdef __WXGTK__ + toolBar -> AddSeparator(); +#endif + toolBar -> AddTool(wxID_HTML_BOOKMARKSADD, wxBITMAP(wbkadd), wxNullBitmap, + FALSE, -1, -1, (wxObject *) NULL, + _("Add current page to bookmarks")); + toolBar -> AddTool(wxID_HTML_BOOKMARKSREMOVE, wxBITMAP(wbkdel), wxNullBitmap, + FALSE, -1, -1, (wxObject *) NULL, + _("Remove current page from bookmarks")); + } + + toolBar -> AddSeparator(); + toolBar -> AddTool(wxID_HTML_OPTIONS, wxBITMAP(woptions), wxNullBitmap, + FALSE, -1, -1, (wxObject *) NULL, + _("Display options dialog")); +} + + + bool wxHtmlHelpFrame::Display(const wxString& x) { wxString url = m_Data->FindPageByName(x); @@ -448,6 +455,8 @@ bool wxHtmlHelpFrame::DisplayIndex() return TRUE; } + + bool wxHtmlHelpFrame::KeywordSearch(const wxString& keyword) { if (! (m_SearchList && m_SearchButton && m_SearchText && m_SearchChoice)) @@ -480,14 +489,13 @@ bool wxHtmlHelpFrame::KeywordSearch(const wxString& keyword) while (status.IsActive()) { curi = status.GetCurIndex(); - if (curi % 10 == 0 && progress.Update(curi) == FALSE) + if (curi % 32 == 0 && progress.Update(curi) == FALSE) break; if (status.Search()) { foundstr.Printf(_("Found %i matches"), ++foundcnt); progress.Update(status.GetCurIndex(), foundstr); m_SearchList -> Append(status.GetName(), status.GetContentsItem()); } - wxYield(); } m_SearchButton -> Enable(TRUE); @@ -502,27 +510,18 @@ bool wxHtmlHelpFrame::KeywordSearch(const wxString& keyword) #define MAX_ROOTS 64 -void wxHtmlHelpFrame::CreateContents(bool show_progress) +void wxHtmlHelpFrame::CreateContents() { if (! m_ContentsBox) return ; - wxProgressDialog *progress = NULL; - wxString proginfo; - m_ContentsBox->Clear(); int cnt = m_Data->GetContentsCnt(); - int div = (cnt / PROGRESS_STEP) + 1; int i; wxHtmlContentsItem *it; - if (show_progress) - progress = new wxProgressDialog(_("Building contents tree..."), wxEmptyString, - cnt, this, wxPD_APP_MODAL | wxPD_CAN_ABORT | - wxPD_AUTO_HIDE); - wxTreeItemId roots[MAX_ROOTS]; bool imaged[MAX_ROOTS]; @@ -533,12 +532,6 @@ void wxHtmlHelpFrame::CreateContents(bool show_progress) imaged[0] = TRUE; for (it = m_Data->GetContents(), i = 0; i < cnt; i++, it++) { - if (show_progress && ((i % div) == 0)) { - proginfo.Printf(_("Added %d/%d items"), i, cnt); - if (! progress->Update(i, proginfo)) - break; - wxYield(); - } roots[it -> m_Level + 1] = m_ContentsBox -> AppendItem( roots[it -> m_Level], it -> m_Name, IMG_Page, -1, new wxHtmlHelpTreeItemData(it)); @@ -556,20 +549,15 @@ void wxHtmlHelpFrame::CreateContents(bool show_progress) imaged[it -> m_Level] = TRUE; } } - if (show_progress) - delete progress; m_ContentsBox -> Expand(roots[0]); } -void wxHtmlHelpFrame::CreateIndex(bool show_progress) +void wxHtmlHelpFrame::CreateIndex() { if (! m_IndexList) return ; - wxProgressDialog *progress = NULL; - wxString proginfo; - m_IndexList->Clear(); int cnt = m_Data->GetIndexCnt(); @@ -580,26 +568,10 @@ void wxHtmlHelpFrame::CreateIndex(bool show_progress) m_IndexCountInfo -> SetLabel(cnttext); if (cnt > INDEX_IS_SMALL) return; - int div = (cnt / PROGRESS_STEP) + 1; - wxHtmlContentsItem* index = m_Data->GetIndex(); - if (show_progress) - progress = new wxProgressDialog(_("Building index list..."), wxEmptyString, - cnt, this, wxPD_APP_MODAL | wxPD_CAN_ABORT | - wxPD_AUTO_HIDE); - for (int i = 0; i < cnt; i++) { - if (show_progress && ((i % div) == 0)) { - proginfo.Printf(_("Added %d/%d items"), i, cnt); - if (! progress->Update(i, proginfo)) - break; - wxYield(); - } + for (int i = 0; i < cnt; i++) m_IndexList -> Append(index[i].m_Name, (char*)(index + i)); - } - - if (show_progress) - delete progress; } void wxHtmlHelpFrame::CreateSearch() @@ -617,10 +589,10 @@ void wxHtmlHelpFrame::CreateSearch() } -void wxHtmlHelpFrame::RefreshLists(bool show_progress) +void wxHtmlHelpFrame::RefreshLists() { - CreateContents(show_progress); - CreateIndex(show_progress); + CreateContents(); + CreateIndex(); CreateSearch(); }