// Modified by: VZ at 05.02.00 to derive from wxStatusBarBase
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_GENERIC_STATUSBR_H_
#define _WX_GENERIC_STATUSBR_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "statusbr.h"
#endif
#include "wx/pen.h"
#include "wx/font.h"
+#include "wx/statusbr.h"
+#include "wx/arrstr.h"
-WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
+extern WXDLLEXPORT_DATA(const wxChar*) wxPanelNameStr;
class WXDLLEXPORT wxStatusBarGeneric : public wxStatusBarBase
{
public:
- wxStatusBarGeneric();
+ wxStatusBarGeneric() { Init(); }
wxStatusBarGeneric(wxWindow *parent,
- wxWindowID id,
+ wxWindowID winid,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- long style = 0,
+ long style = wxFULL_REPAINT_ON_RESIZE,
const wxString& name = wxPanelNameStr)
{
- Create(parent, id, pos, size, style, name);
+ Init();
+
+ Create(parent, winid, pos, size, style, name);
}
wxStatusBarGeneric(wxWindow *parent,
- wxWindowID id,
- long style,
- const wxString& name = wxPanelNameStr)
+ wxWindowID winid,
+ long style,
+ const wxString& name = wxPanelNameStr)
{
- Create(parent, id, style, name);
+ Init();
+
+ Create(parent, winid, style, name);
}
- ~wxStatusBarGeneric();
+ virtual ~wxStatusBarGeneric();
- bool Create(wxWindow *parent, wxWindowID id,
+ bool Create(wxWindow *parent, wxWindowID winid,
const wxPoint& WXUNUSED(pos) = wxDefaultPosition,
const wxSize& WXUNUSED(size) = wxDefaultSize,
- long style = 0,
+ long style = wxFULL_REPAINT_ON_RESIZE,
const wxString& name = wxPanelNameStr)
{
- return Create(parent, id, style, name);
+ return Create(parent, winid, style, name);
}
- bool Create(wxWindow *parent, wxWindowID id,
- long style = 0,
+ bool Create(wxWindow *parent, wxWindowID winid,
+ long style,
const wxString& name = wxPanelNameStr);
// Create status line
virtual void SetFieldsCount(int number = 1,
const int *widths = (const int *) NULL);
- int GetFieldsCount() const { return m_nFields; }
// Set status line text
virtual void SetStatusText(const wxString& text, int number = 0);
void OnPaint(wxPaintEvent& event);
+ void OnLeftDown(wxMouseEvent& event);
+ void OnRightDown(wxMouseEvent& event);
+
virtual void InitColours();
// Responds to colour changes
void OnSysColourChanged(wxSysColourChangedEvent& event);
protected:
- wxString * m_statusStrings;
+ // common part of all ctors
+ void Init();
+
+ wxArrayString m_statusStrings;
+
+ // the last known width of the client rect (used to rebuild cache)
+ int m_lastClientWidth;
+ // the widths of the status bar panes in pixels
+ wxArrayInt m_widthsAbs;
+
int m_borderX;
int m_borderY;
- wxFont m_defaultStatusBarFont;
wxPen m_mediumShadowPen;
wxPen m_hilightPen;
+ virtual wxSize DoGetBestSize() const;
+
private:
DECLARE_EVENT_TABLE()
- DECLARE_DYNAMIC_CLASS(wxStatusBarGeneric)
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBarGeneric)
};
#endif