// Purpose: Hyperlink control
// Author: Francesco Montorsi
// Created: 14/2/2007
-// RCS-ID: $Id$
// Copyright: (c) 2007 Francesco Montorsi
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
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");
g_object_ref(m_widget);
- gtk_widget_show(m_widget);
// alignment
float x_alignment = 0.5;
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);
}