mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-08-17 17:02:51 +08:00
Add support for wxGenericHyperlinkCtrl to XRC too
Allow to create the generic version of wxHyperlinkCtrl in addition to the native one.
This commit is contained in:
@@ -1378,6 +1378,14 @@ page.
|
||||
@endTable
|
||||
|
||||
|
||||
@subsubsection xrc_wxgenerichyperlinkctrl wxGenericHyperlinkCtrl
|
||||
|
||||
This handler is identical to the one for @ref xrc_wxhyperlinkctrl
|
||||
"wxHyperlinkCtrl", please see it for more information. The only difference is
|
||||
that, for the platforms with a native wxHyperlinkCtrl implementation, using
|
||||
this handler creates a generic control rather than a native one.
|
||||
|
||||
|
||||
@subsubsection xrc_wxinfobar wxInfoBar
|
||||
|
||||
@beginTable
|
||||
|
||||
@@ -191,6 +191,7 @@ builtinWindowClasses =
|
||||
| wxGauge
|
||||
| wxGenericAnimationCtrl
|
||||
| wxGenericDirCtrl
|
||||
| wxGenericHyperlinkCtrl
|
||||
| wxGrid
|
||||
| wxHtmlWindow
|
||||
| wxHyperlinkCtrl
|
||||
@@ -297,6 +298,7 @@ builtinClassesNames =
|
||||
| "wxGauge"
|
||||
| "wxGenericAnimationCtrl"
|
||||
| "wxGenericDirCtrl"
|
||||
| "wxGenericHyperlinkCtrl"
|
||||
| "wxGrid"
|
||||
| "wxHtmlWindow"
|
||||
| "wxHyperlinkCtrl"
|
||||
@@ -1043,6 +1045,14 @@ wxGenericDirCtrl =
|
||||
[xrc:p="o"] element defaultfilter {_, t_integer }*
|
||||
}
|
||||
|
||||
wxGenericHyperlinkCtrl =
|
||||
element object {
|
||||
attribute class { "wxGenericHyperlinkCtrl" } &
|
||||
stdObjectNodeAttributes &
|
||||
stdWindowProperties &
|
||||
[xrc:p="important"] element label {_, t_text }* &
|
||||
[xrc:p="important"] element url {_, t_url }*
|
||||
}
|
||||
|
||||
wxGrid =
|
||||
element object {
|
||||
|
||||
+37
-12
@@ -57,18 +57,42 @@ wxHyperlinkCtrlXmlHandler::wxHyperlinkCtrlXmlHandler()
|
||||
|
||||
wxObject *wxHyperlinkCtrlXmlHandler::DoCreateResource()
|
||||
{
|
||||
XRC_MAKE_INSTANCE(control, wxHyperlinkCtrl)
|
||||
wxHyperlinkCtrlBase* control = nullptr;
|
||||
if ( m_instance )
|
||||
control = wxStaticCast(m_instance, wxHyperlinkCtrlBase);
|
||||
|
||||
control->Create
|
||||
(
|
||||
m_parentAsWindow,
|
||||
GetID(),
|
||||
GetText(wxT("label")),
|
||||
GetParamValue(wxT("url")),
|
||||
GetPosition(), GetSize(),
|
||||
GetStyle(wxT("style"), wxHL_DEFAULT_STYLE),
|
||||
GetName()
|
||||
);
|
||||
if ( !control )
|
||||
{
|
||||
if ( m_class == "wxHyperlinkCtrl" )
|
||||
{
|
||||
control = new wxHyperlinkCtrl
|
||||
(
|
||||
m_parentAsWindow,
|
||||
GetID(),
|
||||
GetText(wxT("label")),
|
||||
GetParamValue(wxT("url")),
|
||||
GetPosition(), GetSize(),
|
||||
GetStyle(wxT("style"), wxHL_DEFAULT_STYLE),
|
||||
GetName()
|
||||
);
|
||||
}
|
||||
else // m_class must be "wxGenericHyperlinkCtrl"
|
||||
{
|
||||
control = new wxGenericHyperlinkCtrl
|
||||
(
|
||||
m_parentAsWindow,
|
||||
GetID(),
|
||||
GetText(wxT("label")),
|
||||
GetParamValue(wxT("url")),
|
||||
GetPosition(), GetSize(),
|
||||
GetStyle(wxT("style"), wxHL_DEFAULT_STYLE),
|
||||
GetName()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ( GetBool("hidden", 0) == 1 )
|
||||
control->Hide();
|
||||
|
||||
SetupWindow(control);
|
||||
|
||||
@@ -77,7 +101,8 @@ wxObject *wxHyperlinkCtrlXmlHandler::DoCreateResource()
|
||||
|
||||
bool wxHyperlinkCtrlXmlHandler::CanHandle(wxXmlNode *node)
|
||||
{
|
||||
return IsOfClass(node, wxT("wxHyperlinkCtrl"));
|
||||
return IsOfClass(node, wxT("wxHyperlinkCtrl")) ||
|
||||
IsOfClass(node, wxT("wxGenericHyperlinkCtrl"));
|
||||
}
|
||||
|
||||
#endif // wxUSE_XRC && wxUSE_HYPERLINKCTRL
|
||||
|
||||
Reference in New Issue
Block a user