1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/msw/commandlinkbutton.h
3 // Purpose:     wxCommandLinkButton class
4 // Author:      Rickard Westerlund
5 // Created:     2010-06-11
6 // Copyright:   (c) 2010 wxWidgets team
7 // Licence:     wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9 
10 #ifndef _WX_MSW_COMMANDLINKBUTTON_H_
11 #define _WX_MSW_COMMANDLINKBUTTON_H_
12 
13 // ----------------------------------------------------------------------------
14 // Command link button for wxMSW
15 // ----------------------------------------------------------------------------
16 
17 // Derive from the generic version to be able to fall back to it during
18 // run-time if the command link buttons are not supported by the system we're
19 // running under.
20 
21 class WXDLLIMPEXP_ADV wxCommandLinkButton : public wxGenericCommandLinkButton
22 {
23 public:
wxCommandLinkButton()24     wxCommandLinkButton () : wxGenericCommandLinkButton() { }
25 
26     wxCommandLinkButton(wxWindow *parent,
27                         wxWindowID id,
28                         const wxString& mainLabel = wxEmptyString,
29                         const wxString& note = wxEmptyString,
30                         const wxPoint& pos = wxDefaultPosition,
31                         const wxSize& size = wxDefaultSize,
32                         long style = 0,
33                         const wxValidator& validator = wxDefaultValidator,
34                         const wxString& name = wxButtonNameStr)
wxGenericCommandLinkButton()35         : wxGenericCommandLinkButton()
36     {
37         Create(parent, id, mainLabel, note, pos, size, style, validator, name);
38     }
39 
40     bool Create(wxWindow *parent,
41                 wxWindowID id,
42                 const wxString& mainLabel = wxEmptyString,
43                 const wxString& note = wxEmptyString,
44                 const wxPoint& pos = wxDefaultPosition,
45                 const wxSize& size = wxDefaultSize,
46                 long style = 0,
47                 const wxValidator& validator = wxDefaultValidator,
48                 const wxString& name = wxButtonNameStr);
49 
50     // overridden base class methods
51     // -----------------------------
52 
53     // do the same thing as in the generic case here
SetLabel(const wxString & label)54     virtual void SetLabel(const wxString& label)
55     {
56         SetMainLabelAndNote(label.BeforeFirst('\n'), label.AfterFirst('\n'));
57     }
58 
59     virtual void SetMainLabelAndNote(const wxString& mainLabel,
60                                      const wxString& note);
61 
62     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
63 
64 protected:
65     virtual wxSize DoGetBestSize() const;
66 
67     virtual bool HasNativeBitmap() const;
68 
69 private:
70     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxCommandLinkButton);
71 };
72 
73 #endif // _WX_MSW_COMMANDLINKBUTTON_H_
74