X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/71e030352d74e4e6aed28cfcb0ea6edf3d17af6e..a029059f92e75b1cff50d0c66be89e6b2b82c955:/include/wx/statusbr.h diff --git a/include/wx/statusbr.h b/include/wx/statusbr.h index adc1bf5946..bccef6f403 100644 --- a/include/wx/statusbr.h +++ b/include/wx/statusbr.h @@ -5,26 +5,39 @@ // Modified by: // Created: 05.02.00 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license +// Copyright: (c) Vadim Zeitlin +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_STATUSBR_H_BASE_ #define _WX_STATUSBR_H_BASE_ -#ifdef __GNUG__ - #pragma interface "statbar.h" -#endif +#include "wx/defs.h" + +#if wxUSE_STATUSBAR #include "wx/window.h" +#include "wx/list.h" +#include "wx/dynarray.h" -#if wxUSE_STATUSBAR +extern WXDLLIMPEXP_DATA_CORE(const wxChar) wxStatusBarNameStr[]; + +WX_DECLARE_LIST(wxString, wxListString); + +// ---------------------------------------------------------------------------- +// wxStatusBar constants +// ---------------------------------------------------------------------------- + +// style flags for fields +#define wxSB_NORMAL 0x0000 +#define wxSB_FLAT 0x0001 +#define wxSB_RAISED 0x0002 // ---------------------------------------------------------------------------- // wxStatusBar: a window near the bottom of the frame used for status info // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxStatusBarBase : public wxWindow +class WXDLLIMPEXP_CORE wxStatusBarBase : public wxWindow { public: wxStatusBarBase(); @@ -45,6 +58,9 @@ public: virtual void SetStatusText(const wxString& text, int number = 0) = 0; virtual wxString GetStatusText(int number = 0) const = 0; + void PushStatusText(const wxString& text, int number = 0); + void PopStatusText(int number = 0); + // fields widths // ------------- @@ -56,6 +72,15 @@ public: // -2 grows twice as much as one with width -1 &c) virtual void SetStatusWidths(int n, const int widths[]); + // field styles + // ------------ + + // Set the field style. Use either wxSB_NORMAL (default) for a standard 3D + // border around a field, wxSB_FLAT for no border around a field, so that it + // appears flat or wxSB_POPOUT to make the field appear raised. + // Setting field styles only works on wxMSW + virtual void SetStatusStyles(int n, const int styles[]); + // geometry // -------- @@ -70,9 +95,13 @@ public: virtual int GetBorderY() const = 0; // don't want status bars to accept the focus at all - virtual bool AcceptsFocus() const { return FALSE; } + virtual bool AcceptsFocus() const { return false; } + + virtual bool CanBeOutsideClientArea() const { return true; } protected: + virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } + // set the widths array to NULL void InitWidths(); @@ -82,15 +111,38 @@ protected: // reset the widths void ReinitWidths() { FreeWidths(); InitWidths(); } + // same, for field styles + void InitStyles(); + void FreeStyles(); + void ReinitStyles() { FreeStyles(); InitStyles(); } + + // same, for text stacks + void InitStacks(); + void FreeStacks(); + void ReinitStacks() { FreeStacks(); InitStacks(); } + // calculate the real field widths for the given total available size wxArrayInt CalculateAbsWidths(wxCoord widthTotal) const; + // use these functions to access the stacks of field strings + wxListString *GetStatusStack(int i) const; + wxListString *GetOrCreateStatusStack(int i); + // the current number of fields int m_nFields; // the widths of the fields in pixels if !NULL, all fields have the same // width otherwise int *m_statusWidths; + + // the styles of the fields + int *m_statusStyles; + + // stacks of previous values for PushStatusText/PopStatusText + // this is created on demand, use GetStatusStack/GetOrCreateStatusStack + wxListString **m_statusTextStacks; + + DECLARE_NO_COPY_CLASS(wxStatusBarBase) }; // ---------------------------------------------------------------------------- @@ -99,23 +151,21 @@ protected: #if defined(__WXUNIVERSAL__) #define wxStatusBarUniv wxStatusBar - #define sm_classwxStatusBarUniv sm_classwxStatusBar #include "wx/univ/statusbr.h" -#elif defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR - #define wxStatusBar95 wxStatusBar - #define sm_classwxStatusBar95 sm_classwxStatusBar +#elif defined(__WXPALMOS__) + #define wxStatusBarPalm wxStatusBar - #include "wx/msw/statbr95.h" + #include "wx/palmos/statusbr.h" +#elif defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR + #include "wx/msw/statusbar.h" #elif defined(__WXMAC__) #define wxStatusBarMac wxStatusBar - #define sm_classwxStatusBarMac sm_classwxStatusBar #include "wx/generic/statusbr.h" - #include "wx/mac/statusbr.h" + #include "wx/osx/statusbr.h" #else #define wxStatusBarGeneric wxStatusBar - #define sm_classwxStatusBarGeneric sm_classwxStatusBar #include "wx/generic/statusbr.h" #endif