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