- Fixed resizing columns in wxGrid when they were reordered.
- Added wxImage::Rotate180() (Jeff Tupper).
+GTK:
+
+- Switch to GtkTooltip from deprecated GtkTooltips (Emilien Kia).
+
MSW:
- Native implementation of wxHyperlinkCtrl and wxProgressDialog under modern
#if wxUSE_TOOLTIPS
void wxListBox::GTKApplyToolTip( GtkTooltips *tips, const gchar *tip )
{
- // RN: Is this needed anymore?
- gtk_tooltips_set_tip( tips, GTK_WIDGET( m_treeview ), tip, NULL );
+#if GTK_CHECK_VERSION(2, 12, 0)
+ if (!gtk_check_version(2, 12, 0))
+ {
+ gtk_widget_set_tooltip_text(GTK_WIDGET( m_treeview ), tip);
+ }
+ else
+#endif
+ {
+ // RN: Is this needed anymore?
+ gtk_tooltips_set_tip( tips, GTK_WIDGET( m_treeview ), tip, NULL );
+ }
}
#endif // wxUSE_TOOLTIPS
wxToolBar::~wxToolBar()
{
- if (m_tooltips)
+ if (m_tooltips) // always NULL if GTK >= 2.12
{
gtk_object_destroy(GTK_OBJECT(m_tooltips));
g_object_unref(m_tooltips);
FixupStyle();
m_toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
- m_tooltips = gtk_tooltips_new();
- g_object_ref(m_tooltips);
- gtk_object_sink(GTK_OBJECT(m_tooltips));
+ if (gtk_check_version(2, 12, 0))
+ {
+ m_tooltips = gtk_tooltips_new();
+ g_object_ref(m_tooltips);
+ gtk_object_sink(GTK_OBJECT(m_tooltips));
+ }
GtkSetStyle();
if (style & wxTB_DOCKABLE)
}
if (!HasFlag(wxTB_NO_TOOLTIPS) && !tool->GetShortHelp().empty())
{
- gtk_tool_item_set_tooltip(tool->m_item,
- m_tooltips, wxGTK_CONV(tool->GetShortHelp()), "");
+#if GTK_CHECK_VERSION(2, 12, 0)
+ if (!gtk_check_version(2, 12, 0))
+ {
+ gtk_tool_item_set_tooltip_text(tool->m_item,
+ wxGTK_CONV(tool->GetShortHelp()));
+ }
+ else
+#endif
+ {
+ gtk_tool_item_set_tooltip(tool->m_item,
+ m_tooltips, wxGTK_CONV(tool->GetShortHelp()), "");
+ }
}
g_signal_connect(GTK_BIN(tool->m_item)->child, "button_press_event",
G_CALLBACK(button_press_event), tool);
(void)tool->SetShortHelp(helpString);
if (tool->m_item)
{
- gtk_tool_item_set_tooltip(tool->m_item,
- m_tooltips, wxGTK_CONV(helpString), "");
+#if GTK_CHECK_VERSION(2, 12, 0)
+ if (!gtk_check_version(2, 12, 0))
+ {
+ gtk_tool_item_set_tooltip_text(tool->m_item,
+ wxGTK_CONV(helpString));
+ }
+ else
+#endif
+ {
+ gtk_tool_item_set_tooltip(tool->m_item,
+ m_tooltips, wxGTK_CONV(helpString), "");
+ }
}
}
}
/* static */
void wxToolTip::GTKApply(GtkWidget *w, const gchar *tip)
{
- if ( !gs_tooltips )
- gs_tooltips = gtk_tooltips_new();
+#if GTK_CHECK_VERSION(2, 12, 0)
+ if (!gtk_check_version(2, 12, 0))
+ {
+ gtk_widget_set_tooltip_text(w, tip);
+ }
+ else
+#endif
+ {
+ if ( !gs_tooltips )
+ gs_tooltips = gtk_tooltips_new();
- gtk_tooltips_set_tip(gs_tooltips, w, tip, NULL);
+ gtk_tooltips_set_tip(gs_tooltips, w, tip, NULL);
+ }
}
void wxToolTip::Enable( bool flag )
{
- if (!gs_tooltips)
- return;
-
- if (flag)
- gtk_tooltips_enable( gs_tooltips );
+#if GTK_CHECK_VERSION(2, 12, 0)
+ if (!gtk_check_version(2, 12, 0))
+ {
+ GtkSettings* settings = gtk_settings_get_default();
+ if(!settings)
+ return;
+ gtk_settings_set_long_property(settings, "gtk-enable-tooltips", flag?TRUE:FALSE, NULL);
+ }
else
- gtk_tooltips_disable( gs_tooltips );
+#endif
+ {
+ if (!gs_tooltips)
+ return;
+
+ if (flag)
+ gtk_tooltips_enable( gs_tooltips );
+ else
+ gtk_tooltips_disable( gs_tooltips );
+ }
}
G_BEGIN_DECLS
void wxToolTip::SetDelay( long msecs )
{
- if (!gs_tooltips)
- return;
-
- // FIXME: This is a deprecated function and might not even have an effect.
- // Try to not use it, after which remove the prototype above.
- gtk_tooltips_set_delay( gs_tooltips, (int)msecs );
+#if GTK_CHECK_VERSION(2, 12, 0)
+ if (!gtk_check_version(2, 12, 0))
+ {
+ GtkSettings* settings = gtk_settings_get_default();
+ if(!settings)
+ return;
+ gtk_settings_set_long_property(settings, "gtk-tooltip-timeout", msecs, NULL);
+ }
+ else
+#endif
+ {
+ if (!gs_tooltips)
+ return;
+
+ // FIXME: This is a deprecated function and might not even have an effect.
+ // Try to not use it, after which remove the prototype above.
+ gtk_tooltips_set_delay( gs_tooltips, (int)msecs );
+ }
}
void wxToolTip::SetAutoPop( long WXUNUSED(msecs) )
{
GtkWidget *w = GetConnectWidget();
wxToolTip::GTKApply(w, NULL);
-#if GTK_CHECK_VERSION(2, 12, 0)
- // Just applying NULL doesn't work on 2.12.0, so also use
- // gtk_widget_set_has_tooltip. It is part of the new GtkTooltip API
- // but seems also to work with the old GtkTooltips.
- if (gtk_check_version(2, 12, 0) == NULL)
- gtk_widget_set_has_tooltip(w, FALSE);
-#endif
}
}
void wxWindowGTK::GTKApplyToolTip( GtkTooltips *tips, const gchar *tip )
{
GtkWidget *w = GetConnectWidget();
- gtk_tooltips_set_tip(tips, w, tip, NULL);
#if GTK_CHECK_VERSION(2, 12, 0)
- if ( !tip || tip[0] == '\0' )
+ if (!gtk_check_version(2, 12, 0))
{
- // Just applying empty tool tip doesn't work on 2.12.0, so also use
- // gtk_widget_set_has_tooltip.
- if (gtk_check_version(2, 12, 0) == NULL)
- gtk_widget_set_has_tooltip(w, FALSE);
+ gtk_widget_set_tooltip_text (w, tip);
}
+ else
#endif
+ {
+ gtk_tooltips_set_tip(tips, w, tip, NULL);
+ }
}
#endif // wxUSE_TOOLTIPS