6cf6897100
Calls to SetStatusText() in between Push/PopStatusText() were simply lost before, now the text explicitly changed by SetStatusText() is preserved by the next call to PopStatusText(). This required adding a new virtual method, called DoUpdateStatusText(), which is now implemented in all the derived classes instead of overriding SetStatusText() (on the bright side, it doesn't need to do any checks already done in the base class any more). Also fix PushStatusText() to actually show the text being pushed at all under wxMSW as a side effect. And further reduce code duplication between wxStatusBarBase and the derived classes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
88 lines
2.6 KiB
C++
88 lines
2.6 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msw/statbr.h
|
|
// Purpose: native implementation of wxStatusBar
|
|
// Author: Vadim Zeitlin
|
|
// Modified by:
|
|
// Created: 04.04.98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_MSW_STATUSBAR_H_
|
|
#define _WX_MSW_STATUSBAR_H_
|
|
|
|
#if wxUSE_NATIVE_STATUSBAR
|
|
|
|
#include "wx/vector.h"
|
|
#include "wx/tooltip.h"
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxClientDC;
|
|
|
|
class WXDLLIMPEXP_CORE wxStatusBar : public wxStatusBarBase
|
|
{
|
|
public:
|
|
// ctors and such
|
|
wxStatusBar();
|
|
wxStatusBar(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
long style = wxSTB_DEFAULT_STYLE,
|
|
const wxString& name = wxStatusBarNameStr)
|
|
{
|
|
m_pDC = NULL;
|
|
(void)Create(parent, id, style, name);
|
|
}
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
long style = wxSTB_DEFAULT_STYLE,
|
|
const wxString& name = wxStatusBarNameStr);
|
|
|
|
virtual ~wxStatusBar();
|
|
|
|
// implement base class methods
|
|
virtual void SetFieldsCount(int number = 1, const int *widths = NULL);
|
|
virtual void SetStatusWidths(int n, const int widths_field[]);
|
|
virtual void SetStatusStyles(int n, const int styles[]);
|
|
virtual void SetMinHeight(int height);
|
|
virtual bool GetFieldRect(int i, wxRect& rect) const;
|
|
|
|
virtual int GetBorderX() const;
|
|
virtual int GetBorderY() const;
|
|
|
|
// override some wxWindow virtual methods too
|
|
virtual bool SetFont(const wxFont& font);
|
|
|
|
virtual WXLRESULT MSWWindowProc(WXUINT nMsg,
|
|
WXWPARAM wParam,
|
|
WXLPARAM lParam);
|
|
|
|
protected:
|
|
// implement base class pure virtual method
|
|
virtual void DoUpdateStatusText(int number);
|
|
|
|
// override some base class virtuals
|
|
virtual wxSize DoGetBestSize() const;
|
|
virtual void DoMoveWindow(int x, int y, int width, int height);
|
|
#if wxUSE_TOOLTIPS
|
|
virtual bool MSWProcessMessage(WXMSG* pMsg);
|
|
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result);
|
|
#endif
|
|
|
|
// implementation of the public SetStatusWidths()
|
|
void MSWUpdateFieldsWidths();
|
|
|
|
// used by DoUpdateStatusText()
|
|
wxClientDC *m_pDC;
|
|
|
|
// the tooltips used when wxSTB_SHOW_TIPS is given
|
|
wxVector<wxToolTip*> m_tooltips;
|
|
|
|
private:
|
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBar)
|
|
};
|
|
|
|
#endif // wxUSE_NATIVE_STATUSBAR
|
|
|
|
#endif // _WX_MSW_STATUSBAR_H_
|