Add a method to conveniently hide the info bar and update the parent layout.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62284
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION);
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 AddButton(wxWindowID btnid, const wxString& label = wxString());
virtual void RemoveButton(wxWindowID btnid);
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION);
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION);
+ virtual void Dismiss();
+
virtual void AddButton(wxWindowID btnid,
const wxString& label = wxString());
virtual void AddButton(wxWindowID btnid,
const wxString& label = wxString());
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION) = 0;
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,
// 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
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
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());
*/
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().
/**
Remove a button previously added by AddButton().
+void wxInfoBarGeneric::Dismiss()
+{
+ DoHide();
+}
+
void wxInfoBarGeneric::AddButton(wxWindowID btnid, const wxString& label)
{
wxSizer * const sizer = GetSizer();
void wxInfoBarGeneric::AddButton(wxWindowID btnid, const wxString& label)
{
wxSizer * const sizer = GetSizer();
+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) )
void wxInfoBar::GTKResponse(int btnid)
{
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, btnid);
event.SetEventObject(this);
if ( !HandleWindowEvent(event) )
- {
- Hide();
-
- UpdateParent();
- }
}
GtkWidget *wxInfoBar::GTKAddButton(wxWindowID btnid, const wxString& label)
}
GtkWidget *wxInfoBar::GTKAddButton(wxWindowID btnid, const wxString& label)