| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/infobar.h
 
- // Purpose:     interface of wxInfoBar
 
- // Author:      Vadim Zeitlin
 
- // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     An info bar is a transient window shown at top or bottom of its parent
 
-     window to display non-critical information to the user.
 
-     This class provides another way to show messages to the user, intermediate
 
-     between message boxes and status bar messages. The message boxes are modal
 
-     and thus interrupt the users work flow and should be used sparingly for
 
-     this reason. However status bar messages are often too easy not to notice
 
-     at all. An info bar provides a way to present the messages which has a much
 
-     higher chance to be noticed by the user but without being annoying.
 
-     Info bar may show an icon (on the left), text message and, optionally,
 
-     buttons allowing the user to react to the information presented. It always
 
-     has a close button at the right allowing the user to dismiss it so it isn't
 
-     necessary to provide a button just to close it.
 
-     wxInfoBar calls its parent wxWindow::Layout() method and assumes that it
 
-     will change the parent layout appropriately depending on whether the info
 
-     bar itself is shown or hidden. Usually this is achieved by simply using a
 
-     sizer for the parent window layout and adding wxInfoBar to this sizer as
 
-     one of the items. Considering the usual placement of the info bars,
 
-     normally this sizer should be a vertical wxBoxSizer and the bar its first
 
-     or last element so the simplest possible example of using this class would
 
-     be:
 
-     @code
 
-     class MyFrame : public wxFrame
 
-     {
 
-         ...
 
-         wxInfoBar *m_infoBar;
 
-     };
 
-     MyFrame::MyFrame()
 
-     {
 
-         ...
 
-         m_infoBar = new wxInfoBar(this);
 
-         wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
 
-         sizer->Add(m_infoBar, wxSizerFlags().Expand());
 
-         ... add other frame controls to the sizer ...
 
-         SetSizer(sizer);
 
-     }
 
-     void MyFrame::SomeMethod()
 
-     {
 
-         m_infoBar->ShowMessage("Something happened", wxICON_INFORMATION);
 
-     }
 
-     @endcode
 
-     See the dialogs sample for more sophisticated examples.
 
-     Currently this class is implemented generically (i.e. in the same
 
-     platform-independent way for all ports) and also natively in wxGTK but the
 
-     native implementation requires a recent -- as of this writing -- GTK+ 2.18
 
-     version.
 
-     @library{wxcore}
 
-     @category{miscwnd}
 
-     @see wxStatusBar, wxMessageDialog
 
-     @since 2.9.1
 
- */
 
- class wxInfoBar : public wxControl
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-         Use Create() for the objects created using this constructor.
 
-      */
 
-     wxInfoBar();
 
-     /**
 
-         Constructor creating the info bar window.
 
-         @see Create()
 
-      */
 
-     wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY);
 
-     /**
 
-         Create the info bar window.
 
-         Notice that unlike most of the other wxWindow-derived classes,
 
-         wxInfoBar is created hidden and is only shown when ShowMessage() is
 
-         called. This is more convenient as usually the info bar is created to
 
-         be shown at some later time and not immediately and so creating it
 
-         hidden avoids the need to call Hide() explicitly from the code using
 
-         it.
 
-         This should be only called if the object was created using its default
 
-         constructor.
 
-         @param parent
 
-             A valid parent window pointer.
 
-         @param winid
 
-             The id of the info bar window, usually unused as currently no
 
-             events are generated by this class.
 
-      */
 
-     bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY);
 
-     /**
 
-         Add a button to be shown in the info bar.
 
-         The button added by this method will be shown to the right of the text
 
-         (in LTR layout), with each successive button being added to the right
 
-         of the previous one. If any buttons are added to the info bar using
 
-         this method, the default "Close" button is not shown as it is assumed
 
-         that the extra buttons already allow the user to close it.
 
-         Clicking the button will generate a normal EVT_COMMAND_BUTTON_CLICKED
 
-         event which can be handled as usual. The default handler in wxInfoBar
 
-         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 (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
 
-         you need to either inherit from wxInfoBar and handle them in your
 
-         derived class or use wxEvtHandler::Connect(), as is done in the dialogs
 
-         sample, to handle the button events in the parent frame.
 
-         @param btnid
 
-             Id of the button. It will be used in the button message clicking
 
-             this button will generate.
 
-         @param label
 
-             The label of the button. It may only be empty if @a btnid is one of
 
-             the stock ids in which case the corresponding stock label (see
 
-             wxGetStockLabel()) will be used.
 
-      */
 
-     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()).
 
-      */
 
-     virtual void Dismiss();
 
-     /**
 
-         Remove a button previously added by AddButton().
 
-         @param btnid
 
-             Id of the button to remove. If more than one button with the same
 
-             id is used in the info bar (which is in any case not recommended),
 
-             the last, i.e. most recently added, button with this id is removed.
 
-      */
 
-     void RemoveButton(wxWindowID btnid);
 
-     /**
 
-         Show a message in the bar.
 
-         If the bar is currently hidden, it will be shown. Otherwise its message
 
-         will be updated in place.
 
-         @param msg
 
-             The text of the message.
 
-         @param flags
 
-             One of wxICON_NONE, wxICON_INFORMATION (default), wxICON_QUESTION,
 
-             wxICON_WARNING or wxICON_ERROR values. These flags have the same
 
-             meaning as in wxMessageDialog for the generic version, i.e. show
 
-             (or not, in case of wxICON_NONE) the corresponding icon in the bar
 
-             but can be interpreted by the native versions. For example, the
 
-             GTK+ native implementation doesn't show icons at all but uses this
 
-             parameter to select the appropriate background colour for the
 
-             notification.
 
-      */
 
-     void ShowMessage(const wxString& msg, int flags = wxICON_NONE);
 
-     /**
 
-         @name Generic version customization methods.
 
-         All these methods exist in the generic version of the class only.
 
-         The generic version uses wxWindow::ShowWithEffect() function to
 
-         progressively show it on the platforms which support it (currently only
 
-         wxMSW). The methods here allow to change the default effect used (or
 
-         disable it entirely) and change its duration.
 
-      */
 
-     //@{
 
-     /**
 
-         Set the effects to use when showing and hiding the bar.
 
-         Either or both of the parameters can be set to wxSHOW_EFFECT_NONE to
 
-         disable using effects entirely.
 
-         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.
 
-         @param hideEffect
 
-             The effect to use when hiding the bar.
 
-      */
 
-     void SetShowHideEffects(wxShowEffect showEffect, wxShowEffect hideEffect);
 
-     /// Return the effect currently used for showing the bar.
 
-     wxShowEffect GetShowEffect() const;
 
-     /// Return the effect currently used for hiding the bar.
 
-     wxShowEffect GetHideEffect() const;
 
-     /**
 
-         Set the duration of the animation used when showing or hiding the bar.
 
-         By default, 500ms duration is used.
 
-         @param duration
 
-             Duration of the animation, in milliseconds.
 
-      */
 
-     void SetEffectDuration(int duration);
 
-     /// Return the effect animation duration currently used.
 
-     int GetEffectDuration() const;
 
-     /**
 
-         Overridden base class methods changes the font of the text message.
 
-         wxInfoBar overrides this method to use the font passed to it for its
 
-         text message part. By default a larger and bold version of the standard
 
-         font is used.
 
-         This method is generic-only.
 
-      */
 
-     virtual bool SetFont(const wxFont& font);
 
-     //@}
 
- };
 
 
  |