]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/infobar.h
Only compile wxStd{Input,Output}Stream if wxUSE_STREAMS==1.
[wxWidgets.git] / include / wx / generic / infobar.h
index db57ea31b11c605ee425775682cb04b81f357568..7beb08ad0477092256ad666e53232e7c5f0a1ea6 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     generic wxInfoBar class declaration
 // Author:      Vadim Zeitlin
 // Created:     2009-07-28
-// RCS-ID:      $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
+// RCS-ID:      $Id$
 // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -19,7 +19,7 @@ class WXDLLIMPEXP_FWD_CORE wxStaticText;
 // wxInfoBar
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_ADV wxInfoBarGeneric : public wxInfoBarBase
+class WXDLLIMPEXP_CORE wxInfoBarGeneric : public wxInfoBarBase
 {
 public:
     // the usual ctors and Create() but remember that info bar is created
@@ -41,6 +41,8 @@ public:
     virtual void ShowMessage(const wxString& msg,
                              int flags = wxICON_INFORMATION);
 
+    virtual void Dismiss();
+
     virtual void AddButton(wxWindowID btnid, const wxString& label = wxString());
 
     virtual void RemoveButton(wxWindowID btnid);
@@ -61,8 +63,8 @@ public:
     }
 
     // get effect used when showing/hiding the window
-    wxShowEffect GetShowEffect() const { return m_showEffect; }
-    wxShowEffect GetHideEffect() const { return m_hideEffect; }
+    wxShowEffect GetShowEffect() const;
+    wxShowEffect GetHideEffect() const;
 
     // set the duration of animation used when showing/hiding the bar, in ms
     void SetEffectDuration(int duration) { m_effectDuration = duration; }
@@ -79,6 +81,11 @@ public:
     virtual bool SetFont(const wxFont& font);
 
 protected:
+    // info bar shouldn't have any border by default, the colour difference
+    // between it and the main window separates it well enough
+    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
+
+
     // update the parent to take our new or changed size into account (notably
     // should be called when we're shown or hidden)
     void UpdateParent();
@@ -90,30 +97,34 @@ private:
     // handler for the close button
     void OnButton(wxCommandEvent& event);
 
-    // change the parent background colour to match that of our sibling
-    void ChangeParentBackground();
-
-    // restore the parent background changed by the above function
-    void RestoreParentBackground();
-
     // show/hide the bar
     void DoShow();
     void DoHide();
 
+    // determine the placement of the bar from its position in the containing
+    // sizer
+    enum BarPlacement
+    {
+        BarPlacement_Top,
+        BarPlacement_Bottom,
+        BarPlacement_Unknown
+    };
+
+    BarPlacement GetBarPlacement() const;
+
 
     // different controls making up the bar
     wxStaticBitmap *m_icon;
     wxStaticText *m_text;
     wxBitmapButton *m_button;
 
-    // the effects to use when showing/hiding and duration for them
+    // the effects to use when showing/hiding and duration for them: by default
+    // the effect is determined by the info bar automatically depending on its
+    // position and the default duration is used
     wxShowEffect m_showEffect,
                  m_hideEffect;
     int m_effectDuration;
 
-    // the original parent background colour, before we changed it
-    wxColour m_origParentBgCol;
-
     DECLARE_EVENT_TABLE()
     wxDECLARE_NO_COPY_CLASS(wxInfoBarGeneric);
 };