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);
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION);
+ virtual void Dismiss();
+
virtual void AddButton(wxWindowID btnid,
const wxString& label = wxString());
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION) = 0;
+ // hide the info bar
+ virtual void Dismiss() = 0;
+
// add an extra button to the bar, near the message (replacing the default
// close button which is only shown if no extra buttons are used)
virtual void AddButton(wxWindowID btnid,
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().
}
}
+void wxInfoBarGeneric::Dismiss()
+{
+ DoHide();
+}
+
void wxInfoBarGeneric::AddButton(wxWindowID btnid, const wxString& label)
{
wxSizer * const sizer = GetSizer();
UpdateParent();
}
+void wxInfoBar::Dismiss()
+{
+ if ( !UseNative() )
+ {
+ wxInfoBarGeneric::Dismiss();
+ return;
+ }
+
+ Hide();
+
+ UpdateParent();
+}
+
void wxInfoBar::GTKResponse(int btnid)
{
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, btnid);
event.SetEventObject(this);
if ( !HandleWindowEvent(event) )
- {
- Hide();
-
- UpdateParent();
- }
+ Dismiss();
}
GtkWidget *wxInfoBar::GTKAddButton(wxWindowID btnid, const wxString& label)