// wxInfoBar
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_ADV wxInfoBar : public wxInfoBarBase
+class WXDLLIMPEXP_ADV wxInfoBarGeneric : public wxInfoBarBase
{
public:
// the usual ctors and Create() but remember that info bar is created
// hidden
- wxInfoBar() { Init(); }
+ wxInfoBarGeneric() { Init(); }
- wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY)
+ wxInfoBarGeneric(wxWindow *parent, wxWindowID winid = wxID_ANY)
{
Init();
Create(parent, winid);
// implement base class methods
// ----------------------------
- virtual void ShowMessage(const wxString& msg, int flags = wxICON_NONE);
+ 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);
// methods specific to this version
// --------------------------------
}
// 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; }
// get the currently used effect animation duration
int GetEffectDuration() const { return m_effectDuration; }
+
+ // overridden base class methods
+ // -----------------------------
+
+ // setting the font of this window sets it for the text control inside it
+ // (default font is a larger and bold version of the normal one)
+ 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();
+
private:
// common part of all ctors
void Init();
// handler for the close button
void OnButton(wxCommandEvent& event);
- // update the parent after we're shown or hidden
- void UpdateParent();
-
- // 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;
-
- wxDECLARE_NO_COPY_CLASS(wxInfoBar);
+ DECLARE_EVENT_TABLE()
+ wxDECLARE_NO_COPY_CLASS(wxInfoBarGeneric);
};
#endif // _WX_GENERIC_INFOBAR_H_