4 DON'T EDIT THIS FILE - changes are now maintained in the reference
5 manual, see docs/reference/gtk/changes-*.sgml. Also, when adding a
6 change to the manual, you should amend the docs for all
7 newly-deprecated features to point to the replacement for that
8 feature, and be sure the GTK_DISABLE_DEPRECATED guards are in place in
9 the header files. Be sure to add a note to the docs for EACH
10 deprecated function; don't just do the changes-*.sgml change.
16 Incompatible Changes from GTK+-1.2 to GTK+-2.0:
18 * gtk_container_get_toplevels() was removed and replaced with
19 gtk_window_list_toplevels(), which has different memory management
20 on the return value (gtk_window_list_toplevels() copies the GList
21 and also references each widget in the list, so you have to
22 g_list_free() the list after first unref'ing each list member).
24 * The gdk_time* functions have been removed. This functionality
25 has been unused since the main loop was moved into GLib
28 * The signature for GtkPrintFunc (used for gtk_item_factory_dump_items)
29 has been changed to take a 'const gchar *' instead of 'gchar *', to
30 match what we do for glib, and other similar cases.
32 * The detail arguments in the GtkStyleClass structure are now 'const gchar *'.
34 * gtk_paned_set_gutter_size() has been removed, since the small handle tab
35 has been changed to include the entire area previously occupied by
38 * gtk_paned_set_handle_size() has been removed, in favor of a style property,
39 since this is an option that only makes sense for themes to adjust.
41 * GDK no longer selects OwnerGrabButtonMask for button presses. This means
42 that the automatic grab that occurs when the user presses a button
43 will have owner_events = FALSE, so all events are redirected to the
44 grab window, even events that would normally go to other windows of the
47 * GtkColorSelectionDialog has now been moved into it's own set of files,
48 gtkcolorseldialog.c and gtkcolorseldialog.h.
50 * gtk_widget_shape_combine_mask() now keeps a reference count on the
51 mask pixmap that is passed in.
53 * the GtkPatternSpec has been moved to glib as GPatternSpec, the pattern
54 arguments to gtk_item_factory_dump_items() and gtk_item_factory_dump_rc()
55 have thusly been changed to take a GPatternSpec instead of GtkPatternSpec.
57 * Type system changes:
58 - GTK_TYPE_OBJECT is not a fundamental type anymore. Type checks of the
59 style (GTK_FUNDAMENTAL_TYPE (some_type) == GTK_TYPE_OBJECT)
60 will not work anymore. As a replacement, (GTK_TYPE_IS_OBJECT (some_type))
62 - The following types vanished: GTK_TYPE_ARGS, GTK_TYPE_CALLBACK,
63 GTK_TYPE_C_CALLBACK, GTK_TYPE_FOREIGN. The corresponding GtkArg
64 fields and field access macros are also gone.
65 - The following type aliases vanished: GTK_TYPE_FLAT_FIRST,
66 GTK_TYPE_FLAT_LAST, GTK_TYPE_STRUCTURED_FIRST, GTK_TYPE_STRUCTURED_LAST.
67 - The type macros GTK_TYPE_MAKE() and GTK_TYPE_SEQNO() vanished, use of
68 GTK_FUNDAMENTAL_TYPE() is discouraged. Instead, the corresponding GType
69 API should be used: G_TYPE_FUNDAMENTAL(), G_TYPE_DERIVE_ID(),
70 G_TYPE_BRANCH_SEQNO(). Note that the GLib type system doesn't build new
71 type ids based on a global incremental sequential number anymore, but
72 numbers new type ids sequentially per fundamental type branch.
73 - The following type functions vanished/were replaced:
74 Old Function Replacement
75 gtk_type_query() - being investigated -
76 gtk_type_set_varargs_type() -
77 gtk_type_get_varargs_type() -
78 gtk_type_check_object_cast() g_type_check_instance_cast()
79 gtk_type_check_class_cast() g_type_check_class_cast()
80 gtk_type_describe_tree() -
81 gtk_type_describe_heritage() -
83 gtk_type_children_types() g_type_children()
84 gtk_type_set_chunk_alloc() GTypeInfo.n_preallocs
85 gtk_type_register_enum() g_enum_register_static()
86 gtk_type_register_flags() g_flags_register_static()
87 gtk_type_parent_class() g_type_parent() / g_type_class_peek_parent()
88 Use of g_type_class_ref() / g_type_class_unref() and g_type_class_peek()
89 is recommended over usage of gtk_type_class().
90 Use of g_type_register_static() / g_type_register_dynamic() is recommended
91 over usage of gtk_type_unique().
93 * Object system changes:
94 GtkObject derives from GObject, so is not the basic object type anymore.
95 This imposes the following source incompatible changes:
96 - GtkObject has no klass field anymore, an object's class can be retrived
97 with the object's coresponding GTK_<OBJECT>_GET_CLASS (object) macro.
98 - GtkObjectClass has no type field anymore, a class's type can be retrived
99 with the GTK_CLASS_TYPE (class) macro.
100 - GtkObjectClass does not introduce the finalize() and shutdown() methods
101 anymore. While shutdown() is intended for GTK+ internal use only, finalize()
102 is required by a variety of object implementations. GObjectClass.finalize
103 should be overriden here, e.g.:
104 static void gtk_label_finalize (GObject *gobject)
106 GtkLabel *label = GTK_LABEL (gobject);
108 G_OBJECT_CLASS (parent_class)->finalize (object);
110 static void gtk_label_class_init (GtkLabelClass *class)
112 GObjectClass *gobject_class = G_OBJECT_CLASS (class);
114 gobject_class->finalize = gtk_label_finalize;
117 - the GtkObject::destroy signal can now be emitted multiple times on an object.
118 ::destroy implementations should check that make sure that they take this
119 into account, by checking to make sure that resources are there before
120 freeing them. For example:
121 if (object->foo_data)
123 g_free (object->foo_data);
124 object->foo_data = NULL;
127 Also, ::destroy implementations have to release object references that
128 the object holds. Code in finalize implementations such as:
129 if (object->adjustment)
131 gtk_object_unref (object->adjustment);
132 object->adjustment = NULL;
134 have to be moved into the ::destroy implementations. The reason for doing
135 this is that all object reference cycles should be broken at destruction
138 Because the ::destroy signal can be emitted multiple times, it no longer
139 makes sense to check if a widget has been destroyed using the
140 GTK_OBJECT_DESTROYED() macro, and this macro has been removed. If
141 catching destruction is still needed, it can be done with a signal
142 connection to ::destroy.
144 * Signal system changes:
145 The Gtk 2.0 signal merly proxies the GSignal system now.
146 For future usage, direct use of the GSignal API is recommended,
147 this avoids significant performance hits where GtkArg structures
148 have to be converted into GValues. For language bindings,
149 GSignal+GClosure provide a much more flexible and convenient
150 mechanism to hook into signal emissions or install class default
151 handlers, so the old GtkSignal API for language bindings is not
153 Functions that got removed in the Gtk signal API:
154 gtk_signal_n_emissions(), gtk_signal_n_emissions_by_name(),
155 gtk_signal_set_funcs(), gtk_signal_handler_pending_by_id(),
156 gtk_signal_add_emission_hook(), gtk_signal_add_emission_hook_full(),
157 gtk_signal_remove_emission_hook(), gtk_signal_query().
158 Also, the GtkCallbackMarshal argument to gtk_signal_connect_full() is
159 not supported anymore.
160 For many of the removed functions, similar variants are available
161 in the g_signal_* namespace.
162 The GSignal system perfomrs emissions in a slightly different manner than
163 the old GtkSignal code. Signal handlers that are connected to signal "foo"
164 on object "bar" while "foo" is being emitted, will not be called anymore
165 during the emission they were connected within.
167 * Inserting and deleting text in GtkEntry though functions such
168 as gtk_entry_insert_text() now leave the cursor at its original
169 position in the text instead of moving it to the location of
170 the insertion/deletion.
172 * The ->label field of GtkFrame widgets has been removed. (As part of
173 a change to allow the arbitrary widgets in the title position.) The
174 text can now be retrieved with the new function gtk_frame_get_text().
176 * The 'font' and 'font_set' declarations in RC files are now ignored. There
177 is a new 'font_name' field that holds the string form of a Pango font
179 * A number of types in GDK have become subclasses of GObject. For the
180 most part, this should not break anyone's code. However, it's now
181 possible/encouraged to use g_object_ref()/g_object_unref() and other
182 GObject features with these GDK types. The converted types are:
183 GdkWindow, GdkDrawable, GdkPixmap, GdkImage, GdkGC, GdkDragContext,
186 * All drawables including pixmaps used to have a type tag, the
187 GdkWindowType enumeration, which included GDK_WINDOW_PIXMAP.
188 GdkWindowType is now a property of GdkWindow _only_, and there is
189 no GDK_WINDOW_PIXMAP. You can use the GDK_IS_PIXMAP() macro to see
190 if you have a pixmap, if you need to know that.
192 * GtkStyle and GtkRcStyle are now subclasses of GObject as well. This
193 requires fairly extensive changes to theme engines quite badly, but
194 shouldn't affect most other code.
196 * xthickness/ythickness have moved from GtkStyleClass to GtkStyle
197 (from class to instance). This gives themes a bit more flexibility
198 and is generally more of the Right Thing. You can trivially fix
199 your code with s/style->klass->xthickness/style->xthickness/g and
202 * Some GtkStyle draw_ methods have been removed (cross, oval, ramp)
203 and others have been added (expander, layout). This will require
204 changes to theme engines.
206 * If you were using private GDK types, they have been rearranged
207 significantly. You shouldn't use private types. ;-)
209 * The visual for a widget, and also the default visual is now derived
210 from the colormap for the widget and the default colormap.
211 gtk_widget_set_visual(), gtk_widget_set_default_visual(), gtk_widget_push_visual()
212 and gtk_widget_pop_visual() now do nothing. Since the visual always
213 had to match that of the colormap, it is safe to simply delete
214 all references to these functions.
216 * A number of functions in GDK have been renamed for consistency and
217 clarity. #defines to provide backwards compatibility have been
218 included, but can be disabled by defineing GDK_DISABLE_DEPRECATED.
220 #define gdk_draw_pixmap gdk_draw_drawable
221 #define gdk_draw_bitmap gdk_draw_drawable
223 #define gdk_window_get_size gdk_drawable_get_size
224 #define gdk_window_get_type gdk_window_get_window_type
225 #define gdk_window_get_colormap gdk_drawable_get_colormap
226 #define gdk_window_set_colormap gdk_drawable_set_colormap
227 #define gdk_window_get_visual gdk_drawable_get_visual
229 #define gdk_window_ref gdk_drawable_ref
230 #define gdk_window_unref gdk_drawable_unref
231 #define gdk_bitmap_ref gdk_drawable_ref
232 #define gdk_bitmap_unref gdk_drawable_unref
233 #define gdk_pixmap_ref gdk_drawable_ref
234 #define gdk_pixmap_unref gdk_drawable_unref
236 #define gdk_gc_destroy gdk_gc_unref
237 #define gdk_image_destroy gdk_image_unref
238 #define gdk_cursor_destroy gdk_cursor_unref
240 (Note that g_object_ref() and g_object_unref() may be used for all of
241 the above _ref and _unref functions.)
243 #define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height) \
244 gdk_draw_pixmap(drawable,gc,source_drawable,source_x,source_y,x,y,width,height)
246 #define gdk_rgb_get_cmap gdk_rgb_get_colormap
248 gtk_widget_popup() was removed, it was only usable for GtkWindows, and
249 there the same effect can be achived by gtk_widget_set_uposition() and
252 * gdk_pixmap_foreign_new() no longer calls XFreePixmap() on the
253 pixmap when the GdkPixmap is finalized. This change corresponds
254 to the behavior of gdk_window_foreign_new(), and fixes a lot
255 of problems with code where the pixmap wasn't supposed to be
256 freed. If XFreePixmap() is needed, it can be done using the
257 destroy-notification facilities of g_object_set_data().
259 * GtkProgress/GtkProgressBar had serious problems in GTK 1.2.
260 - Only 3 or 4 functions are really needed for 95% of progress
261 interfaces; GtkProgress[Bar] had about 25 functions, and
262 didn't even include these 3 or 4.
263 - In activity mode, the API involves setting the adjustment
264 to any random value, just to have the side effect of
265 calling the progress bar update function - the adjustment
266 is totally ignored in activity mode
267 - You set the activity step as a pixel value, which means to
268 set the activity step you basically need to connect to
270 - There are ctree_set_expander_style()-functions, to randomly
271 change look-and-feel for no good reason
272 - The split between GtkProgress and GtkProgressBar makes no sense
274 This was a big wart on GTK and made people waste lots of time,
275 both learning and using the interface.
276 So, we have added what we feel is the correct API, and marked all the
277 rest deprecated. However, the changes are 100% backward-compatible and
278 should break no existing code.
279 The following 5 functions are the new programming interface and you
280 should consider changing your code to use them:
281 void gtk_progress_bar_pulse (GtkProgressBar *pbar);
282 void gtk_progress_bar_set_text (GtkProgressBar *pbar,
284 void gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
287 void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,
289 void gtk_progress_bar_set_orientation (GtkProgressBar *pbar,
290 GtkProgressBarOrientation orientation);
292 * The GtkNotebookPage structure has been removed from the public header files;
293 this was never meant to be a public structure, and all functionality that
294 could be done by accessing the struct fields of this structure should be
297 * GtkMenuPositionFunc has a new parameter push_in which controls how
298 menus placed outside the screen is handled. If this is set to true and
299 part of the menu is outside the screen then Gtk+ pushes it into the visible
300 area. Otherwise the menu is cut of at the end of the visible screen area.
302 Regardles of what happens to the size of the menu, the result is always
303 that the items are placed in the same place as if the menu was placed
304 outside the screen, using menu scrolling if necessary.
306 * The "draw" signal and virtual method on GtkWidget has been removed.
307 All drawing should now occur by invalidating a region of the widget
308 (call gdk_window_invalidate_rect() or gtk_widget_queue_draw() for
309 example to invalidate a region). GTK+ merges all invalid regions,
310 and sends expose events to the widget in an idle handler for the
311 invalid regions. gtk_widget_draw() is deprecated but still works; it
312 adds the passed-in area to the invalid region and immediately sends
313 expose events for the current invalid region.
314 Most widgets will work fine if you just delete their "draw"
315 implementation, since they will already have working expose_event
316 implementations. The draw method was rarely called in practice
319 * The GdkExposeEvent has a new region field. This can be used instead
320 of the area field if you want a more exact representation of the
323 * Sending synthetic exposes using gtk_widget_event is no longer allowed.
324 If you just need an expose call you should use gdk_window_invalidate_rect()
325 or gdk_window_invalidate_region() instead. For the case of container
326 widgets that need to propagate expose events to NO_WINDOW children
327 you can either use gtk_container_propagate_expose(), or chain to the
328 default container expose handler.
330 * The draw_default and draw_focus methods/signals on GtkWidget are
331 gone; simply draw things in your expose handler.
332 gtk_widget_draw_focus() and gtk_widget_draw_default() wrapper
333 functions are also gone; just queue a draw on the widget,
334 or the part affected by the focus/default anyway.
335 Also, GtkWidget now has default implementations for focus_in_event
336 and focus_out_event. These set/unset GTK_HAS_FOCUS, and queue a
337 draw. So if your focus in/out handler just does that, you can delete
340 * GtkText and GtkTree are buggy and broken. We don't recommend using
341 them, and changing old code to avoid them is a good idea. The
342 recommended alternatives are GtkTextView and GtkTreeView. The
343 broken widgets are not declared in the headers by default; to use
344 them, define the symbol GTK_ENABLE_BROKEN during compilation. In
345 some future release, these widgets will be removed from GTK+.
347 * GdkColorContext is gone; you probably weren't using it anyway.
348 Use GdkColormap and the gdk_rgb_* functions instead.
350 * GtkMenuBar now draws the GtkContainer::border_width space outside
351 the frame, not inside the frame
353 * In GTK 1.2, if an event handler returned TRUE it prevented
354 propagation of that event to parent widgets. That is, the
355 event signal would not be emitted on parent widgets. In
356 GTK 2.0, if an event handler returns TRUE, the current signal
357 emission on the current widget is immediately stopped. That is,
358 other callbacks connected to the signal will not be invoked.
360 * gtk_toolbar_new() no longer has arguments. This function
361 was broken because the default GtkToolbarStyle (icons, text, both)
362 is now a user preference, which is overridden when you call
363 gtk_toolbar_set_style(). The constructor forced everyone to
364 override the preference, which was undesirable. So to port
365 your app, decide if you want to force the toolbar style
366 or conform to the user's global defaults; if you want to force
367 it, call gtk_toolbar_set_style().
369 The orientation arg was removed from toolbar_new() as well, just
370 because it wasn't very useful and we were breaking the function
371 anyway so had an opportunity to lose it. Call
372 gtk_toolbar_set_orientation() to set toolbar orientation.
374 * GtkRange/GtkScrollbar/GtkScale were rewritten; this means that most
375 theme engines won't draw them properly, and any custom subclasses of
376 these widgets will need a rewrite (though if you could figure out
377 how to subclass the old version of GtkRange, you have our
378 respect). Also, GtkTroughType is gone.
380 * The GtkContainer::focus signal/virtualfunction and
381 gtk_container_focus() call were replaced by
382 GtkWidget::focus and gtk_widget_child_focus().
383 The semantics are the same, so you should be able to just
384 replace "container_class->focus = mywidget_focus" with
385 "widget_class->focus = mywidget_focus" and replace
386 gtk_container_focus() calls with gtk_widget_child_focus() calls.
388 The purpose of this change was to allow non-containers to have
391 * gtk_rc_set_image_loader() and gtk_rc_load_image() has been removed, now
392 that GTK+ includes decent image loading capabilities itself.
394 * An extra GtkSettings argument has been added to
395 gtk_rc_find_pixmap_in_path(). This function is only actually useful
396 from a theme engine during parsing, at which point the GtkSettings
399 * The child argument facility in gtkcontainer.c has been converted
400 to a child property facility using GParamSpec and other facilities
403 - The set_child_arg and get_child_arg virtual methods have been
404 replaced with set_child_property / get_child_property, which
405 work similar to GObject->set_property/get_property.
407 - Other removed functions with the replacements:
409 gtk_container_add_child_arg_type => gtk_container_class_install_child_property
410 gtk_container_query_child_args => gtk_container_class_list_child_properties
411 gtk_container_child_getv => gtk_container_child_set_property
412 gtk_container_child_setv => gtk_container_child_get_property
413 gtk_container_add_with_args => gtk_container_add_with_properties
414 gtk_container_addv => gtk_container_add / gtk_container_child_set_property
416 * gdk_image_get() (or rather its replacement,
417 gdk_drawable_get_image()) now handles errors properly by returning
418 NULL, previously it would crash. Also, a window being offscreen is
419 no longer considered an error; instead, the area being contains
420 undefined contents for the offscreen areas. In most cases, code
421 using gdk_image_get() should really be ported to
422 gdk_pixbuf_get_from_drawable().
424 * gtk_widget_set_usize() has been renamed to
425 gtk_widget_set_size_request(), however the old name still exists
426 unless you define GTK_DISABLE_DEPRECATED.
428 * gtk_widget_set_uposition() is deprecated; use gtk_window_move(),
429 gtk_fixed_put(), or gtk_layout_put() instead.
431 * gtk_window_set_policy() is deprecated. To get the effect of
432 "allow_shrink", call gtk_widget_set_size_request(window, 0, 0). To
433 get the effect of "allow_grow", call
434 gtk_window_set_resizable(window, TRUE). You didn't want the effect
435 of auto_shrink, it made no sense. But maybe if you were using it you
436 want to use gtk_window_resize (window, 1, 1) to snap a window back
437 to its minimum size (the 1, 1 will be rounded up to the minimum
440 * The core GTK+ now takes care of handling mapping, unmapping and
441 realizing the child widgets of containers in
442 gtk_widget_set_parent(). In most cases, this allows container
443 implementations to be simplifid by removing the code in add()
444 methods to map and realize children. However, there are
445 a couple of things to watch out for here:
447 - If the parent is realized before the add() happens,
448 gtk_widget_set_parent_window() must be called before
449 gtk_widget_set_parent(), since gtk_widget_set_parent()
450 will realize the child.
452 - If a container depended on its children not being mapped
453 unless it did so itself (for example, GtkNotebook only
454 mapped the current page), then the new function
455 gtk_widget_set_child_visible() must be called to keep
456 widgets that should not be mapped not mapped.
458 As part of this change, most containers also will no longer need
459 custom implementations of the map() and unmap() virtual
460 functions. The only cases where this is necessary are:
462 - For !NO_WINDOW widgets, if you create children of widget->window
463 and don't map them in realize() then you must map them
464 in map(). [ In almost all cases, you can simply map the
465 windows in realize() ]
467 - For NO_WINDOW widgets, if you create windows in your realize()
468 method, you must map then in map() and unmap them in unmap().
470 * gtk_widget_set_default_style (), gtk_widget_push_style (),
471 and gtk_widget_pop_style () have been removed, since they
472 did not work properly with themes and there were better
473 alternatives for modifying the appearance of widgets.
475 You should generally use gtk_widget_modify_fg/bg/base/text/font
478 * gtk_image_new() now takes no arguments and creates an empty GtkImage
479 widget. To create a GtkImage widget from a GdkImage (the least
480 common usage of GdkImage), use gtk_image_new_from_image.
482 * GTK_SELECTION_EXTENDED is now deprecated, and neither the
483 GtkList/GtkTree nor the GtkCList/GtkCTree support
484 GTK_SELECTION_EXTENDED anymore. However, the old extended behavior
485 replaces MULTIPLE behavior.
487 * The following variables are no longer exported from GDK. (Other variables
488 are also no longer exported; the following are the ones found used
489 externally in a large sample of GTK+ code.)
493 gdk_null_window_warnings None - did nothing in GTK+-1.2.
494 gdk_leader_window None - private variable
495 gdk_screen gdk_x11_get_default_screen ()
496 gdk_root_window gdk_x11_get_default_root_xwindow ()
497 gdk_root_parent gdk_get_default_root_window ()
498 gdk_error_code/gdk_error_warnings gdk_error_trap_push()/pop()
499 gdk_display_name gdk_get_display ()
500 gdk_wm_delete_window gdk_atom_intern ("WM_DELETE_WINDOW", FALSE)
501 gdk_wm_take_focus gdk_atom_intern ("WM_TAKE_FOCUS", FALSE)
502 gdk_wm_protocols gdk_atom_intern ("WM_PROTOCOLS", FALSE)
504 * The handling of Colormaps and widgets has been changed:
506 - The default colormap for widgets is now the GdkRGB colormap, not
507 the system default colormap. If you try to use resources created for
508 a widget (e.g., widget->style) with a window using the system
509 colormap, errors will result on some machines.
511 - gtk_widget_push/pop_colormap() only cause the colormap to be
512 explicitely set on toplevel widgets not on all widgets. The
513 colormap for other widgets (when not set using
514 gtk_widget_set_colormap()), is determined by finding the nearest
515 ancestor with a colormap set on it explicitely, or if that
516 fails, the default colormap.
518 * The default selected day for GtkCalendar is now the current day in the
519 month, not the first day in the month. The current month and year
522 * GDK is no longer put into threaded mode automatically when
523 g_thread_init() has been called. In order to use the
524 global GDK thread mutex with gdk_threads_enter() and
525 gdk_threads_leave(), you must call gdk_threads_init() explicitely.
527 If you aren't using GDK and GTK+ functions from multiple threads,
528 there is no reason to call gdk_threads_init().
530 * The GtkPreviewInfo struct has had its visual and colormap fields
531 removed. Also, gtk_preview_get_cmap() and gtk_preview_get_visual()
532 are deprecated, as GdkRgb works on any colormap and visual. You no
533 longer need to gtk_widget_push_cmap (gtk_preview_get_cmap ()) in
536 * The GtkBox, GtkTable, and GtkAlignment widgets now call
537 gtk_widget_set_redraw_on_allocate (widget, FALSE); on themselves.
538 If you want to actually draw contents in a widget derived from
539 one of these widgets, you'll probably want to change this
540 in your init() function.
542 * A number of widgets are now NO_WINDOW widgets (most importantly
543 GtkButton, but also GtkRange and GtkNotebook)
545 This has a couple of effects:
547 - If you are deriving from one of these widgets, you need to
548 adapt your code appropriately -- for instance, drawing coordinates
549 start from widget->allocation.x, widget->allocation.y.
551 - If you are embedding one of these widgets in a custom widget,
552 you must make sure you call gtk_container_propagate_expose()
553 correctly, as you must for any NO_WINDOW widgets.
555 GtkFixed is a little special; it is now created by default as
556 a NO_WINDOW widget, but if you do
558 gtk_fixed_set_has_window (fixed, TRUE);
560 after creating a fixed widget, it will create a window and
563 * GtkLayout no longer has the xoffset, yoffset fields, which used
564 to store the difference between world and window coordinates for
565 layout->bin_window. These coordinate systems are now always
568 * gtk_paint_focus(), gtk_draw_focus() and GtkStyle::draw_focus()
569 have been changed a bit:
571 - A GtkStateType argument has been added to gtk_paint_focus()
572 - The default implementation of GtkStyle::draw_focus virtual
573 function now draws a focus rectangle whose width is
574 determinted by the GtkWidget::focus-width style property.
575 - The rectangle passed in is the bounding box, instead of
576 the rectangle used in the gdk_draw_rectangle() call, so it is
577 no longer necessary to subtract 1 from the width and height.
581 DON'T EDIT THIS FILE - changes are now maintained in the reference
582 manual, see docs/reference/gtk/changes-*.sgml. Also, when adding a
583 change to the manual, you should amend the docs for all
584 newly-deprecated features to point to the replacement for that
585 feature, and be sure the GTK_DISABLE_DEPRECATED guards are in place in
586 the header files. Be sure to add a note to the docs for EACH
587 deprecated function; don't just do the changes-*.sgml change.