X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/33ac7e6f01acbac1cff0ad400d8ea7f0bfd0a62f..d75a69e8329cecf6f07c667ffc015186c230a2b5:/include/wx/generic/statusbr.h?ds=sidebyside diff --git a/include/wx/generic/statusbr.h b/include/wx/generic/statusbr.h index 47a834f1c1..2f58f2b93e 100644 --- a/include/wx/generic/statusbr.h +++ b/include/wx/generic/statusbr.h @@ -5,108 +5,108 @@ // 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__ -#pragma interface "statusbr.h" -#endif +#include "wx/defs.h" -#include "wx/pen.h" -#include "wx/font.h" -#include "wx/statusbr.h" +#if wxUSE_STATUSBAR -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; +#include "wx/pen.h" +#include "wx/arrstr.h" -class WXDLLEXPORT wxStatusBarGeneric : public wxStatusBarBase +class WXDLLIMPEXP_CORE wxStatusBarGeneric : public wxStatusBarBase { public: - wxStatusBarGeneric(); - wxStatusBarGeneric(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Create(parent, id, pos, size, style, name); - } - wxStatusBarGeneric(wxWindow *parent, - wxWindowID id, - long style, - const wxString& name = wxPanelNameStr) - { - Create(parent, id, style, name); - } - - ~wxStatusBarGeneric(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& WXUNUSED(pos) = wxDefaultPosition, - const wxSize& WXUNUSED(size) = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - return Create(parent, id, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - 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); - virtual wxString GetStatusText(int number = 0) const; - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // Get the position and size of the field's internal bounding rectangle - virtual bool GetFieldRect(int i, wxRect& rect) const; - - // sets the minimal vertical size of the status bar - virtual void SetMinHeight(int height); - - virtual int GetBorderX() const { return m_borderX; } - virtual int GetBorderY() const { return m_borderY; } - - //////////////////////////////////////////////////////////////////////// - // Implementation - - virtual void DrawFieldText(wxDC& dc, int i); - virtual void DrawField(wxDC& dc, int i); - - void SetBorderX(int x); - void SetBorderY(int y); - - void OnPaint(wxPaintEvent& event); - - virtual void InitColours(); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); + wxStatusBarGeneric() { Init(); } + wxStatusBarGeneric(wxWindow *parent, + wxWindowID winid = wxID_ANY, + long style = wxST_SIZEGRIP, + const wxString& name = wxStatusBarNameStr) + { + Init(); + + Create(parent, winid, style, name); + } + + virtual ~wxStatusBarGeneric(); + + bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY, + long style = wxST_SIZEGRIP, + const wxString& name = wxStatusBarNameStr); + + // Create status line + virtual void SetFieldsCount(int number = 1, + const int *widths = (const int *) NULL); + + // Set status line text + virtual void SetStatusText(const wxString& text, int number = 0); + virtual wxString GetStatusText(int number = 0) const; + + // Set status line widths + virtual void SetStatusWidths(int n, const int widths_field[]); + + // Get the position and size of the field's internal bounding rectangle + virtual bool GetFieldRect(int i, wxRect& rect) const; + + // sets the minimal vertical size of the status bar + virtual void SetMinHeight(int height); + + virtual int GetBorderX() const { return m_borderX; } + virtual int GetBorderY() const { return m_borderY; } + + //////////////////////////////////////////////////////////////////////// + // Implementation + + virtual void DrawFieldText(wxDC& dc, int i); + virtual void DrawField(wxDC& dc, int i); + + void SetBorderX(int x); + void SetBorderY(int y); + + void OnPaint(wxPaintEvent& event); + + void OnLeftDown(wxMouseEvent& event); + void OnRightDown(wxMouseEvent& event); + + virtual void InitColours(); + + // Responds to colour changes + void OnSysColourChanged(wxSysColourChangedEvent& event); + + // true if the status bar shows the size grip: for this it must have + // wxST_SIZEGRIP style and the window it is attached to must be resizeable + // and not maximized + bool ShowsSizeGrip() const; protected: - wxString * m_statusStrings; - int m_borderX; - int m_borderY; - wxFont m_defaultStatusBarFont; - wxPen m_mediumShadowPen; - wxPen m_hilightPen; + // 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; + wxPen m_mediumShadowPen; + wxPen m_hilightPen; + + virtual wxSize DoGetBestSize() const; private: - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxStatusBarGeneric) + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBarGeneric) }; +#endif // wxUSE_STATUSBAR + #endif // _WX_GENERIC_STATUSBR_H_