Incompatible Changes from GTK+-1.0 to GTK+-1.2: * GtkAcceleratorTable has been replaced with GtkAccelGroup * GtkMenuFactory has been replaced with GtkItemFactory, although a version of GtkMenuFactory is provided to ease compatibility. * GtkButton has been changed to derive from GtkBin. To access a button's child, use GTK_BIN (button)->child, instead of the old GTK_BUTTON (button)->child. * The selection API has been slightly modified: gtk_selection_add_handler() and gtk_selection_add_handler_full() have been removed. To supply the selection, one now register the targets one is interested in with: void gtk_selection_add_target (GtkWidget *widget, GdkAtom selection, GdkAtom target, guint info); or: void gtk_selection_add_targets (GtkWidget *widget, GdkAtom selection, GtkTargetEntry *targets, guint ntargets); When a request for a selection is received, the new "selection_get" signal will be called: void "selection_get" (GtkWidget *widget, GtkSelectionData *selection_data, guint info, guint time); A "time" parameter has also been added to the "selection_received" signal. void "selection_received" (GtkWidget *widget, GtkSelectionData *selection_data, guint time); * The old drag and drop API has been completely removed and replaced. See the reference documentation for details on the new API. * Support for Themes has been added. In general, this does not affect application code, however, a few new rules should be observed: - To set a shape for a window, you must use gtk_widget_shape_combine_mask() instead of gdk_window_shape_combine_mask(), or the shape will be reset when switching themes. - It is no longer permissable to draw directly on an arbitrary widget, or to set an arbitrary widget's background pixmap. If you need to do that, use a GtkDrawingArea or (for a toplevel) the new GtkDrawWindow widget. * Scrolled windows do not create an automatic viewport anymore, and self scrolling widgets do not provide their own scrollbars any further. Self scrolling widgets of the Gtk+ core currently are GtkViewport, GtkCList, GtkCTree, GtkText and GtkLayout. All of these widgets can be added to a scrolled window as normal children with gtk_container_add() and their scrolling abilities will be setup appropriatedly in an automatic manner. Widgets that do not implement own scrolling abilities but get added to a scrolled window in order to have their allocations scrollable inside of the scrolled window (e.g. a GtkList) have first to be added to a GtkViewport, and then the viewport needs to be added to the scrolled window. However, the scrolled window code provides a convenience function to achive this: gtk_scrolled_window_add_with_viewport() which will do exactly what it says, add a child widget to a viewport and put that viewport into the scrolled window. Scrollbar policy adjustment needs to be perfomed on the scrolled window with gtk_scrolled_window_set_policy() and is not longer maintained for the child widgets (e.g. GtkCList's gtk_clist_set_policy() got removed).