native implementation requires a recent -- as of this writing -- GTK+ 2.18
version.
- @library{wxadv}
+ @library{wxcore}
@category{miscwnd}
@see wxStatusBar, wxMessageDialog
@since 2.9.1
*/
-class wxInfoBar : public wxWindow
+class wxInfoBar : public wxControl
{
public:
/**
The id of the info bar window, usually unused as currently no
events are generated by this class.
*/
- wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY);
+ bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY);
/**
Add a button to be shown in the info bar.
itself closes the window whenever a button in it is clicked so if you
wish the info bar to be hidden when the button is clicked, simply call
@c event.Skip() in the button handler to let the base class handler do
- it. On the other hand, if you don't skip the event, the info bar will
- remain opened so make sure to do it for at least some buttons to allow
- the user to close it.
+ it (calling Dismiss() explicitly works too, of course). On the other
+ hand, if you don't skip the event, the info bar will remain opened so
+ make sure to do it for at least some buttons to allow the user to close
+ it.
Notice that the generic wxInfoBar implementation handles the button
events itself and so they are not propagated to the info bar parent and
*/
void AddButton(wxWindowID btnid, const wxString& label = wxString());
+ /**
+ Hide the info bar window.
+
+ This method hides the window and lays out the parent window to account
+ for its disappearance (unlike a simple Hide()).
+ */
+ void Dismiss();
+
/**
Remove a button previously added by AddButton().
Either or both of the parameters can be set to wxSHOW_EFFECT_NONE to
disable using effects entirely.
- Notice that if you place the bar at the bottom of the window you should
- reverse the effects used for showing and hiding for better appearance.
+ By default, the info bar uses wxSHOW_EFFECT_SLIDE_TO_BOTTOM effect for
+ showing itself and wxSHOW_EFFECT_SLIDE_TO_TOP for hiding if it is the
+ first element of the containing sizer and reverse effects if it's the
+ last one. If it is neither the first nor the last element, no effect is
+ used to avoid the use of an inappropriate one and this function must be
+ called if an effect is desired.
@param showEffect
- The effect to use when showing the bar. By default,
- wxSHOW_EFFECT_SLIDE_TO_BOTTOM which is appropriate for the bars
- placed at the top of the window.
+ The effect to use when showing the bar.
@param hideEffect
- The effect to use when hiding the bar. By default,
- wxSHOW_EFFECT_SLIDE_TO_TOP which is appropriate for the bars placed
- at the top of the window.
+ The effect to use when hiding the bar.
*/
void SetShowHideEffects(wxShowEffect showEffect, wxShowEffect hideEffect);