X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c67daf87774c71ae9f73af9969008af220e52a11..1d54b9d29706dbb43de5624bdf4a2aaa74b2350b:/include/wx/generic/statusbr.h diff --git a/include/wx/generic/statusbr.h b/include/wx/generic/statusbr.h index d6a6909b0f..08e2e6ae63 100644 --- a/include/wx/generic/statusbr.h +++ b/include/wx/generic/statusbr.h @@ -1,51 +1,71 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: statusbr.h -// Purpose: wxStatusBar class +// Name: wx/generic/statusbr.h +// Purpose: wxStatusBarGeneric class // Author: Julian Smart -// Modified by: +// 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 __STATUSBRH_G__ -#define __STATUSBRH_G__ +#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/window.h" +#include "wx/pen.h" +#include "wx/font.h" +#include "wx/statusbr.h" +#include "wx/arrstr.h" -WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr; +extern WXDLLEXPORT_DATA(const wxChar*) wxPanelNameStr; -class WXDLLEXPORT wxStatusBar: public wxWindow +class WXDLLEXPORT wxStatusBarGeneric : public wxStatusBarBase { - DECLARE_DYNAMIC_CLASS(wxStatusBar) - public: - wxStatusBar(void); - inline wxStatusBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) + wxStatusBarGeneric() { Init(); } + wxStatusBarGeneric(wxWindow *parent, + wxWindowID winid, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + 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 winid, + long style, + const wxString& name = wxPanelNameStr) + { + Init(); - ~wxStatusBar(); + Create(parent, winid, style, name); + } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); + virtual ~wxStatusBarGeneric(); + + bool Create(wxWindow *parent, wxWindowID winid, + const wxPoint& WXUNUSED(pos) = wxDefaultPosition, + const wxSize& WXUNUSED(size) = wxDefaultSize, + long style = wxFULL_REPAINT_ON_RESIZE, + const wxString& name = wxPanelNameStr) + { + return Create(parent, winid, style, name); + } + + 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); - inline int GetFieldsCount() const { return m_nFields; } + 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); @@ -54,39 +74,56 @@ public: // Set status line widths virtual void SetStatusWidths(int n, const int widths_field[]); - virtual void DrawFieldText(wxDC& dc, int i); - virtual void DrawField(wxDC& dc, int i); - // Get the position and size of the field's internal bounding rectangle - virtual bool GetFieldRect(int i, wxRectangle& rect) const; + virtual bool GetFieldRect(int i, wxRect& rect) const; - inline int GetBorderX() const { return m_borderX; } - inline int GetBorderY() const { return m_borderY; } - inline void SetBorderX(int x); - inline void SetBorderY(int y); + // 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); protected: - int * m_statusWidths; - int m_nFields; - 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_NO_COPY(wxStatusBarGeneric) }; #endif - // __STATUSBRH_G__ + // _WX_GENERIC_STATUSBR_H_