From 37146d3352819c1cc5776e889d23e20d82194e99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Thu, 5 Jun 2008 09:38:37 +0000 Subject: [PATCH] added wxHtmlWindow::SetRelatedStatusBar(wxStatusBar*) (patch #9235 by troelsk) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/html/htmlwin.h | 14 +++++++------ interface/html/htmlwin.h | 22 +++++++++++++++++---- src/html/htmlwin.cpp | 41 ++++++++++++++++++++++++++++----------- 3 files changed, 56 insertions(+), 21 deletions(-) diff --git a/include/wx/html/htmlwin.h b/include/wx/html/htmlwin.h index 073872af0d..54b520de15 100644 --- a/include/wx/html/htmlwin.h +++ b/include/wx/html/htmlwin.h @@ -31,7 +31,7 @@ class wxHtmlProcessorList; class WXDLLIMPEXP_FWD_HTML wxHtmlWinAutoScrollTimer; class WXDLLIMPEXP_FWD_HTML wxHtmlCellEvent; class WXDLLIMPEXP_FWD_HTML wxHtmlLinkEvent; - +class WXDLLIMPEXP_FWD_CORE wxStatusBar; // wxHtmlWindow flags: #define wxHW_SCROLLBAR_NEVER 0x0002 @@ -297,7 +297,8 @@ public: #if wxUSE_STATUSBAR // After(!) calling SetRelatedFrame, this sets statusbar slot where messages // will be displayed. Default is -1 = no messages. - void SetRelatedStatusBar(int bar); + void SetRelatedStatusBar(int index); + void SetRelatedStatusBar(wxStatusBar*, int index = 0); #endif // wxUSE_STATUSBAR // Sets fonts to be used when displaying HTML page. @@ -479,13 +480,14 @@ protected: // class for opening files (file system) wxFileSystem* m_FS; - wxFrame *m_RelatedFrame; - wxString m_TitleFormat; -#if wxUSE_STATUSBAR // frame in which page title should be displayed & number of it's statusbar // reserved for usage with this html window - int m_RelatedStatusBar; + wxFrame *m_RelatedFrame; +#if wxUSE_STATUSBAR + int m_RelatedStatusBarIndex; + wxStatusBar* m_RelatedStatusBar; #endif // wxUSE_STATUSBAR + wxString m_TitleFormat; // borders (free space between text and window borders) // defaults to 10 pixels. diff --git a/interface/html/htmlwin.h b/interface/html/htmlwin.h index 086eed1a28..3b6ccc2912 100644 --- a/interface/html/htmlwin.h +++ b/interface/html/htmlwin.h @@ -366,11 +366,25 @@ public: @b After calling SetRelatedFrame(), this sets statusbar slot where messages will be displayed. (Default is -1 = no messages.) - - @param bar - statusbar slot number (0..n) + + @param index + Statusbar slot number (0..n) */ - void SetRelatedStatusBar(int bar); + void SetRelatedStatusBar(int index); + + /** + @b Sets the associated statusbar where messages will be displayed. + Call this instead of SetRelatedFrame() if you want statusbar updates only, + no changing of the frame title. + + @param statusbar + Statusbar pointer + @param index + Statusbar slot number (0..n) + + @since 2.9.0 + */ + void SetRelatedStatusBar(wxStatusBar* statusbar, int index = 0); /** Returns content of currently displayed page as plain text. diff --git a/src/html/htmlwin.cpp b/src/html/htmlwin.cpp index 6437b543c3..67ab8a7f66 100644 --- a/src/html/htmlwin.cpp +++ b/src/html/htmlwin.cpp @@ -291,7 +291,8 @@ void wxHtmlWindow::Init() m_tmpCanDrawLocks = 0; m_FS = new wxFileSystem(); #if wxUSE_STATUSBAR - m_RelatedStatusBar = -1; + m_RelatedStatusBar = NULL; + m_RelatedStatusBarIndex = -1; #endif // wxUSE_STATUSBAR m_RelatedFrame = NULL; m_TitleFormat = wxT("%s"); @@ -363,10 +364,17 @@ void wxHtmlWindow::SetRelatedFrame(wxFrame* frame, const wxString& format) #if wxUSE_STATUSBAR -void wxHtmlWindow::SetRelatedStatusBar(int bar) +void wxHtmlWindow::SetRelatedStatusBar(int index) { - m_RelatedStatusBar = bar; + m_RelatedStatusBarIndex = index; } + +void wxHtmlWindow::SetRelatedStatusBar(wxStatusBar* statusbar, int index) +{ + m_RelatedStatusBar = statusbar; + m_RelatedStatusBarIndex = index; +} + #endif // wxUSE_STATUSBAR @@ -510,9 +518,9 @@ bool wxHtmlWindow::LoadPage(const wxString& location) needs_refresh = true; #if wxUSE_STATUSBAR // load&display it: - if (m_RelatedStatusBar != -1) + if (m_RelatedStatusBarIndex != -1) { - m_RelatedFrame->SetStatusText(_("Connecting..."), m_RelatedStatusBar); + SetHTMLStatusText(_("Connecting...")); Refresh(false); } #endif // wxUSE_STATUSBAR @@ -541,10 +549,10 @@ bool wxHtmlWindow::LoadPage(const wxString& location) wxString src = wxEmptyString; #if wxUSE_STATUSBAR - if (m_RelatedStatusBar != -1) + if (m_RelatedStatusBarIndex != -1) { wxString msg = _("Loading : ") + location; - m_RelatedFrame->SetStatusText(msg, m_RelatedStatusBar); + SetHTMLStatusText(msg); Refresh(false); } #endif // wxUSE_STATUSBAR @@ -577,8 +585,10 @@ bool wxHtmlWindow::LoadPage(const wxString& location) delete f; #if wxUSE_STATUSBAR - if (m_RelatedStatusBar != -1) - m_RelatedFrame->SetStatusText(_("Done"), m_RelatedStatusBar); + if (m_RelatedStatusBarIndex != -1) + { + SetHTMLStatusText(_("Done")); + } #endif // wxUSE_STATUSBAR } } @@ -1612,8 +1622,17 @@ void wxHtmlWindow::SetHTMLBackgroundImage(const wxBitmap& bmpBg) void wxHtmlWindow::SetHTMLStatusText(const wxString& text) { #if wxUSE_STATUSBAR - if (m_RelatedStatusBar != -1) - m_RelatedFrame->SetStatusText(text, m_RelatedStatusBar); + if (m_RelatedStatusBarIndex != -1) + { + if (m_RelatedStatusBar) + { + m_RelatedStatusBar->SetStatusText(text, m_RelatedStatusBarIndex); + } + else if (m_RelatedFrame) + { + m_RelatedFrame->SetStatusText(text, m_RelatedStatusBarIndex); + } + } #else wxUnusedVar(text); #endif // wxUSE_STATUSBAR