Difference between revisions of "GTK+ 3 migration"
(→Switch from GtkCombo to GtkComboBoxEntry: Done. A few symbols left for compatibility) |
|||
Line 15: | Line 15: | ||
=== Get rid of "visual" functions for GtkWidgets === | === Get rid of "visual" functions for GtkWidgets === | ||
The visual for a widget, and also the default visual is now derived from the colormap for the widget and the default colormap. <code>gtk_widget_set_visual()</code>, <code>gtk_widget_set_default_visual()</code>, <code>gtk_widget_push_visual()</code> and <code>gtk_widget_pop_visual()</code> now do nothing. Since the visual always had to match that of the colormap, it is safe to simply delete all references to these functions. | The visual for a widget, and also the default visual is now derived from the colormap for the widget and the default colormap. <code>gtk_widget_set_visual()</code>, <code>gtk_widget_set_default_visual()</code>, <code>gtk_widget_push_visual()</code> and <code>gtk_widget_pop_visual()</code> now do nothing. Since the visual always had to match that of the colormap, it is safe to simply delete all references to these functions. | ||
:Done [[User:Valavanisalex|Valavanisalex]] 09:55, 23 June 2011 (UTC) | |||
=== Don't use GtkNotebookPage === | === Don't use GtkNotebookPage === |
Revision as of 09:55, 23 June 2011
Inkscape currently makes use of the GTK+ 2.20 library API. Ultimately, we will need to switch to the new GTK+ 3 API. This version of the library introduces a number of major changes that are incompatible with GTK, so we need to make some changes to Inkscape.
Guidance from upstream
The GTK+ 3 reference manual offers some guidance for the upgrade process.
Deprecated symbols
Inkscape currently makes use of a number of deprecated GTK+ symbols. We need to get rid of all of these before we can upgrade. Some are very easy to replace. Some are a little more challenging. We need to ensure that Inkscape still builds correctly when the "-DGTK_DISABLE_DEPRECATED" compiler flag is applied. An incomplete "to do" list follows:
Switch to gobject
The GtkType and GtkObject API has been replaced by the gobject library.
Use accessor functions to GtkWidget
Accessor functions such as gtk_widget_has_focus()
should be used instead of deprecated macros such as GTK_WIDGET_HAS_FOCUS()
Get rid of "visual" functions for GtkWidgets
The visual for a widget, and also the default visual is now derived from the colormap for the widget and the default colormap. gtk_widget_set_visual()
, gtk_widget_set_default_visual()
, gtk_widget_push_visual()
and gtk_widget_pop_visual()
now do nothing. Since the visual always had to match that of the colormap, it is safe to simply delete all references to these functions.
- Done Valavanisalex 09:55, 23 June 2011 (UTC)
Don't use GtkNotebookPage
The GtkNotebookPage
structure has been removed from the public header files; this was never meant to be a public structure, and all functionality that could be done by accessing the struct fields of this structure should be accessible otherwise.
Switch from GtkCombo to GtkComboBoxEntry
See [1]
- Done. A few symbols are left in #if/#else blocks in src/dialogs/text-edit.cpp to allow build compatibility with GTK+ 2.20. These can be removed once Inkscape has bumped its dependency level to GTK+ >= 2.24. Valavanisalex 09:46, 23 June 2011 (UTC)
Get rid of GtkAction proxy functions
gtk_action_connect_proxy has been deprecated since version 2.16 and should not be used in newly-written code. Use gtk_activatable_set_related_action() instead.