// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
+/**
+ @class wxStatusBarPane
+
+ A status bar pane data container used by wxStatusBar.
+
+ @library{wxcore}
+ @category{data}
+
+ @see wxStatusBar
+*/
+class wxStatusBarPane
+{
+public:
+ /**
+ Constructs the pane with the given @a style and @a width.
+ */
+ wxStatusBarPane(int style = wxSB_NORMAL, size_t width = 0);
+
+ /**
+ Returns the pane width; it maybe negative, indicating a variable-width field.
+ */
+ int GetWidth() const;
+
+ /**
+ Returns the pane style.
+ */
+ int GetStyle() const;
+
+ /**
+ Returns the stack of strings pushed on this pane.
+
+ Note that this stack does include also the string currently displayed in this pane
+ as the version stored in the native status bar control is possibly ellipsized.
+
+ Also note that GetStack().Last() is the top of the stack (i.e. the string shown
+ in the status bar).
+ */
+ const wxArrayString& GetStack() const;
+};
+
/**
@class wxStatusBar
@beginStyleTable
@style{wxST_SIZEGRIP}
- On Windows 95, displays a gripper at right-hand side of the status bar.
+ Displays a gripper at the right-hand side of the status bar.
@endStyleTable
- @todo reference to win95 may be old and wrong
-
@remarks
It is possible to create controls and other windows on the status bar.
- Position these windows from an OnSize event handler.
+ Position these windows from an OnSize() event handler.
@library{wxcore}
@category{miscwnd}
- @see wxFrame, @ref page_samples_statbar
+ @see wxStatusBarPane, wxFrame, @ref page_samples_statbar
*/
class wxStatusBar : public wxWindow
{
*/
wxStatusBar(wxWindow* parent, wxWindowID id = wxID_ANY,
long style = wxST_SIZEGRIP,
- const wxString& name = "statusBar");
+ const wxString& name = wxStatusBarNameStr);
/**
Destructor.
@see wxRect
*/
virtual bool GetFieldRect(int i, wxRect& rect) const;
-
+
/**
- Returns the number of fields in the status bar.
+ Returns the number of fields in the status bar.
*/
int GetFieldsCount() const;
-
+
+ /**
+ Returns the wxStatusBarPane representing the @a n-th field.
+ */
+ const wxStatusBarPane& GetField(int n) const;
+
/**
Returns the string associated with a status bar field.
*/
virtual wxString GetStatusText(int i = 0) const;
+ /**
+ Returns the stack of strings pushed (see PushStatusText()) on the
+ @a n-th field.
+
+ See wxStatusBarPane::GetStack() for more info.
+ */
+ const wxArrayString& GetStatusStack(int n) const;
+
+ /**
+ Returns the width of the @a n-th field.
+
+ See wxStatusBarPane::GetWidth() for more info.
+ */
+ int GetStatusWidth(int n) const;
+
+ /**
+ Returns the style of the @a n-th field.
+
+ See wxStatusBarPane::GetStyle() for more info.
+ */
+ int GetStatusStyle(int n) const;
+
/**
Sets the field text to the top of the stack, and pops the stack of saved
strings.
/**
Saves the current field text in a per field stack, and sets the field text
to the string passed as argument.
+
+ @see PopStatusText()
*/
void PushStatusText(const wxString& string, int field = 0);
Sets the number of fields, and optionally the field widths.
@param number
- The number of fields.
+ The number of fields. If this is greater than the previous number,
+ then new fields with empty strings will be added to the status bar.
@param widths
An array of n integers interpreted in the same way as
in SetStatusWidths().
/**
Sets the widths of the fields in the status line. There are two types of
- fields: fixed widths one and variable width fields. For the fixed width fields
+ fields: @b fixed widths and @b variable width fields. For the fixed width fields
you should specify their (constant) width in pixels. For the variable width
fields, specify a negative number which indicates how the field should expand:
the space left for all variable width fields is divided between them according
@param n
The number of fields in the status bar. Must be equal to the
number passed to SetFieldsCount() the last time it was called.
- @param widths
+ @param widths_field
Contains an array of n integers, each of which is either an
absolute status field width in pixels if positive or indicates a
variable width field if negative.
+ The special value @NULL means that all fields should get the same width.
@remarks The widths of the variable fields are calculated from the total
width of all fields, minus the sum of widths of the