#pragma hdrstop
#endif
-#if wxUSE_HYPERLINKCTRL && defined(__WXGTK210__)
+#if wxUSE_HYPERLINKCTRL && defined(__WXGTK210__) && !defined(__WXUNIVERSAL__)
#include "wx/hyperlink.h"
static inline bool UseNative()
{
// native gtk_link_button widget is only available in GTK+ 2.10 and later
+#ifdef __WXGTK3__
+ return true;
+#else
return !gtk_check_version(2, 10, 0);
+#endif
}
// ============================================================================
// implementation
// ============================================================================
-IMPLEMENT_DYNAMIC_CLASS(wxHyperlinkCtrl, wxGenericHyperlinkCtrl)
-
-
// ----------------------------------------------------------------------------
// "clicked"
// ----------------------------------------------------------------------------
}
m_widget = gtk_link_button_new("asdfsaf asdfdsaf asdfdsa");
- gtk_widget_show(m_widget);
+ g_object_ref(m_widget);
// alignment
float x_alignment = 0.5;
m_parent->DoAddChild( this );
PostCreation(size);
- SetInitialSize(size);
// wxWindowGTK will connect to the enter_notify and leave_notify GTK+ signals
// thus overriding GTK+'s internal signal handlers which set the cursor of
return wxGenericHyperlinkCtrl::DoGetBestSize();
}
+wxSize wxHyperlinkCtrl::DoGetBestClientSize() const
+{
+ if ( UseNative() )
+ return wxControl::DoGetBestClientSize();
+ return wxGenericHyperlinkCtrl::DoGetBestClientSize();
+}
+
void wxHyperlinkCtrl::SetLabel(const wxString &label)
{
if ( UseNative() )
if ( UseNative() )
{
const gchar *str = gtk_link_button_get_uri(GTK_LINK_BUTTON(m_widget));
- return wxString(str, *wxConvFileName);
+ return wxString::FromUTF8(str);
}
return wxGenericHyperlinkCtrl::GetURL();
GdkWindow *wxHyperlinkCtrl::GTKGetWindow(wxArrayGdkWindows& windows) const
{
- return UseNative() ? GTK_BUTTON(m_widget)->event_window
+ return UseNative() ? gtk_button_get_event_window(GTK_BUTTON(m_widget))
: wxGenericHyperlinkCtrl::GTKGetWindow(windows);
}