]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/statusbr.h
document that under wxMSW slant == italic
[wxWidgets.git] / interface / wx / statusbr.h
index d22450196381def43b9a69dafe23f6bad7f48638..d97648ead8e3873ffaa1a018c6cc1fe7ff9979df 100644 (file)
@@ -6,6 +6,46 @@
 // 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
 {
@@ -84,12 +122,17 @@ public:
         @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.
 
@@ -103,6 +146,28 @@ public:
     */
     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.
@@ -114,6 +179,8 @@ public:
     /**
         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);
 
@@ -121,7 +188,8 @@ public:
         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().
@@ -166,7 +234,7 @@ public:
 
     /**
         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
@@ -184,6 +252,7 @@ public:
             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