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
This commit is contained in:
Václav Slavík 2008-06-05 09:38:37 +00:00
parent 7258d99573
commit 37146d3352
3 changed files with 56 additions and 21 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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