]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/hyperlink.cpp
Move code that does not need realized GdkWinow out of realize handler
[wxWidgets.git] / src / gtk / hyperlink.cpp
index dc90de7e584d666e7cd9b9d1ce6ac24bd83ca492..f90589df14f8d7a507d11e32bd17d924eb124572 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     Hyperlink control
 // Author:      Francesco Montorsi
 // Created:     14/2/2007
 // Purpose:     Hyperlink control
 // Author:      Francesco Montorsi
 // Created:     14/2/2007
-// RCS-ID:      $Id$
 // Copyright:   (c) 2007 Francesco Montorsi
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // 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
 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);
     return !gtk_check_version(2, 10, 0);
+#endif
 }
 
 // ============================================================================
 // implementation
 // ============================================================================
 
 }
 
 // ============================================================================
 // implementation
 // ============================================================================
 
-IMPLEMENT_DYNAMIC_CLASS(wxHyperlinkCtrl, wxGenericHyperlinkCtrl)
-
-
 // ----------------------------------------------------------------------------
 // "clicked"
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // "clicked"
 // ----------------------------------------------------------------------------
@@ -85,7 +85,6 @@ bool wxHyperlinkCtrl::Create(wxWindow *parent, wxWindowID id,
 
         m_widget = gtk_link_button_new("asdfsaf asdfdsaf asdfdsa");
         g_object_ref(m_widget);
 
         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;
 
         // alignment
         float x_alignment = 0.5;
@@ -126,6 +125,13 @@ wxSize wxHyperlinkCtrl::DoGetBestSize() const
     return wxGenericHyperlinkCtrl::DoGetBestSize();
 }
 
     return wxGenericHyperlinkCtrl::DoGetBestSize();
 }
 
+wxSize wxHyperlinkCtrl::DoGetBestClientSize() const
+{
+    if ( UseNative() )
+        return wxControl::DoGetBestClientSize();
+    return wxGenericHyperlinkCtrl::DoGetBestClientSize();
+}
+
 void wxHyperlinkCtrl::SetLabel(const wxString &label)
 {
     if ( UseNative() )
 void wxHyperlinkCtrl::SetLabel(const wxString &label)
 {
     if ( UseNative() )
@@ -151,7 +157,7 @@ wxString wxHyperlinkCtrl::GetURL() const
     if ( UseNative() )
     {
         const gchar *str = gtk_link_button_get_uri(GTK_LINK_BUTTON(m_widget));
     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();
     }
 
     return wxGenericHyperlinkCtrl::GetURL();
@@ -238,7 +244,7 @@ wxColour wxHyperlinkCtrl::GetHoverColour() const
 
 GdkWindow *wxHyperlinkCtrl::GTKGetWindow(wxArrayGdkWindows& windows) const
 {
 
 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);
 }
 
                        : wxGenericHyperlinkCtrl::GTKGetWindow(windows);
 }