91 lines
3.2 KiB
C++
91 lines
3.2 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msw/hyperlink.h
|
|
// Purpose: Hyperlink control
|
|
// Author: Rickard Westerlund
|
|
// Created: 2010-08-04
|
|
// Copyright: (c) 2010 wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_MSW_HYPERLINK_H_
|
|
#define _WX_MSW_HYPERLINK_H_
|
|
|
|
#include "wx/generic/hyperlink.h"
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxHyperlinkCtrl
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_ADV wxHyperlinkCtrl : public wxGenericHyperlinkCtrl
|
|
{
|
|
public:
|
|
// Default constructor (for two-step construction).
|
|
wxHyperlinkCtrl() = default;
|
|
|
|
// Constructor.
|
|
wxHyperlinkCtrl(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& label, const wxString& url,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxHL_DEFAULT_STYLE,
|
|
const wxString& name = wxASCII_STR(wxHyperlinkCtrlNameStr))
|
|
{
|
|
(void)Create(parent, id, label, url, pos, size, style, name);
|
|
}
|
|
|
|
// Creation function (for two-step construction).
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& label, const wxString& url,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxHL_DEFAULT_STYLE,
|
|
const wxString& name = wxASCII_STR(wxHyperlinkCtrlNameStr));
|
|
|
|
virtual ~wxHyperlinkCtrl();
|
|
|
|
// overridden base class methods
|
|
// -----------------------------
|
|
|
|
virtual void SetURL(const wxString &url) override;
|
|
|
|
virtual void SetLabel(const wxString &label) override;
|
|
|
|
// Native control doesn't change appearance on hover, so we don't support
|
|
// changing hover colour.
|
|
virtual wxColour GetHoverColour() const override;
|
|
|
|
virtual wxColour GetNormalColour() const override;
|
|
virtual void SetNormalColour(const wxColour &colour) override;
|
|
|
|
virtual wxColour GetVisitedColour() const override;
|
|
virtual void SetVisitedColour(const wxColour &colour) override;
|
|
|
|
// overridden/inherited wxWindow methods
|
|
virtual bool Enable(bool enable = true) override;
|
|
virtual bool SetForegroundColour(const wxColour& colour) override;
|
|
|
|
virtual wxVisualAttributes GetDefaultAttributes() const override;
|
|
static wxVisualAttributes
|
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
|
|
|
protected:
|
|
virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const override;
|
|
virtual wxSize DoGetBestClientSize() const override;
|
|
|
|
private:
|
|
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) override;
|
|
|
|
bool MSWAreCustomColoursEnabled() const;
|
|
void MSWEnableCustomColours();
|
|
|
|
// This is set to the previously used colour when the control is disabled,
|
|
// to be able to restore it later when the control is enabled again.
|
|
wxColour m_savedEnabledColour;
|
|
|
|
wxDECLARE_DYNAMIC_CLASS( wxHyperlinkCtrl );
|
|
};
|
|
|
|
#endif // _WX_MSW_HYPERLINK_H_
|