diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2002-04-19 23:05:49 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2002-04-19 23:05:49 +0000 |
commit | 7614512195c93ebb1851efc30b50d4d7141bec61 (patch) | |
tree | c88125413007cc76a37010166c7c9c88cb9ef473 /docs | |
parent | ae89375b9e37819371606fafca1e54eaed3d12d4 (diff) | |
download | gtk+-7614512195c93ebb1851efc30b50d4d7141bec61.tar.gz |
Remove some files whose content is either obsolete or has been moved
* TODO, TODO.xml, README.nanox, docs/Changes-1.2.txt,
docs/Changes-2.0.txt, docs/gtk-config.txt, docs/debugging.txt,
gdk/TODO: Remove some files whose content is either obsolete or
has been moved elsewhere.
* Makefile.am, gtk+.spec.in, docs/Makefile.am: Remove references
to these files.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/Changes-1.2.txt | 295 | ||||
-rw-r--r-- | docs/Changes-2.0.txt | 587 | ||||
-rw-r--r-- | docs/Makefile.am | 1 | ||||
-rw-r--r-- | docs/debugging.txt | 106 |
4 files changed, 0 insertions, 989 deletions
diff --git a/docs/Changes-1.2.txt b/docs/Changes-1.2.txt deleted file mode 100644 index 36d3042f32..0000000000 --- a/docs/Changes-1.2.txt +++ /dev/null @@ -1,295 +0,0 @@ - - -DON'T EDIT THIS FILE - changes are now maintained in the reference -manual, see docs/reference/gtk/changes-*.sgml. Also, when adding a -change to the manual, you should amend the docs for all -newly-deprecated features to point to the replacement for that -feature, and be sure the GTK_DISABLE_DEPRECATED guards are in place in -the header files. Be sure to add a note to the docs for EACH -deprecated function; don't just do the changes-*.sgml change. - - - -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 currently still provided to ease - the migration phase. - -* The GtkTypeInfo structures used in the gtk_*_type_init() functions have - changed a bit, the old format: - GtkTypeInfo bin_info = - { - "GtkBin", - sizeof (GtkBin), - sizeof (GtkBinClass), - (GtkClassInitFunc) gtk_bin_class_init, - (GtkObjectInitFunc) gtk_bin_init, - (GtkArgSetFunc) NULL, - (GtkArgGetFunc) NULL, - }; - - needs to be converted to: - - static const GtkTypeInfo bin_info = - { - "GtkBin", - sizeof (GtkBin), - sizeof (GtkBinClass), - (GtkClassInitFunc) gtk_bin_class_init, - (GtkObjectInitFunc) gtk_bin_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - the GtkArgSetFunc and GtkArgGetFunc functions are not supported from the - type system anymore, and you should make sure that your code only fills - in these fields with NULL and doesn't use the deprecated function typedefs - (GtkArgSetFunc) and (GtkArgGetFunc) anymore. - -* A number of Gtk functions were renamed. For compatibility, gtkcompat.h - #define's the old 1.0.x function names in terms of the new names. - To assure your Gtk program doesn't rely on outdated function - variants, compile your program with -DGTK_DISABLE_COMPAT_H to disable - the compatibility aliases. - - Here is the list of the old names and replacements: - - Old: Replacement: - - gtk_accel_label_accelerator_width gtk_accel_label_get_accel_width - gtk_check_menu_item_set_state gtk_check_menu_item_set_active - gtk_container_border_width gtk_container_set_border_width - gtk_label_set gtk_label_set_text - gtk_notebook_current_page gtk_notebook_get_current_page - gtk_packer_configure gtk_packer_set_child_packing - gtk_paned_gutter_size gtk_paned_set_gutter_size - gtk_paned_handle_size gtk_paned_set_handle_size - gtk_scale_value_width gtk_scale_get_value_width - gtk_style_apply_default_pixmap gtk_style_apply_default_background (1) - gtk_toggle_button_set_state gtk_toggle_button_set_active - gtk_window_position gtk_window_set_position - - (1) gtk_style_apply_default_background() has an additional - argument, gboolean set_bg. This parameter should be FALSE if - the background is being set for a NO_WINDOW widget, otherwise - true. - -* During the development phase of the 1.1.x line of Gtk certain functions - were deprecated and later removed. Functions affected are: - - Removed: Replacement: - gtk_clist_set_border gtk_clist_set_shadow_type - gtk_container_block_resize gtk_container_set_resize_mode - gtk_container_unblock_resize gtk_container_set_resize_mode - gtk_container_need_resize gtk_container_check_resize - gtk_ctree_show_stub gtk_ctree_set_show_stub - gtk_ctree_set_reorderable gtk_clist_set_reorderable - gtk_ctree_set_use_drag_icons gtk_clist_set_use_drag_icons - gtk_entry_adjust_scroll (1) - gtk_object_class_add_user_signal gtk_object_class_user_signal_new - gtk_preview_put_row gtk_preview_put - gtk_progress_bar_construct gtk_progress_set_adjustment - gtk_scrolled_window_construct gtk_scrolled_window_set_{h|v}adjustment - gtk_spin_button_construct gtk_spin_button_configure - gtk_widget_thaw_accelerators gtk_widget_unlock_accelerators - gtk_widget_freeze_accelerators gtk_widget_lock_accelerators - -(1) This function is no longer needed as GtkEntry should automatically - keep the scroll adjusted properly. - -* Additionally, all gtk_*_interp functions were removed. - gtk_*_full versions were provided as of GTK+-1.0 and should - be used instead. - -* 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. - -* The ScrolledWindow widget no longer creates a Viewport - automatically. Instead, it has been generalized to accept - any "self-scrolling" widget. - - The self-scrolling widgets in the Gtk+ core 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 scrollbars will be set up automatically. - - To add scrollbars to a non self-scrolling widget, (such as a GtkList), - first add it to a viewport, then add the viewport to a scrolled window. - The scrolled window code provides a convenience function to do this: - - void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrollwin, - GtkWidget *child); - - This does exactly what it says - it creates a Viewport, adds the child - widget to it, then adds the Viewport to the scrolled window. - - The scrollbars have been removed from the GtkCList and GtkCTree, - because they are now scrolled by simply adding them to a Scrolled - Window. The scrollbar policy is set on the scrolled window with - gtk_scrolled_window_set_policy() and not on the child widgets - (e.g. GtkCList's gtk_clist_set_policy() was removed). - -* The "main loop" of GTK+ has been moved to GLib. This should not - affect existing programs, since compatibility functions have - been provided. However, you may want to consider migrating - your code to use the GLib main loop directly. - -* the GTK_BASIC flag was removed, and with it the corresponding - macro and function GTK_WIDGET_BASIC() and gtk_widget_basic(). - -* All freeze/thaw methods are now recursive - that is, if you - freeze a widget n times, you must also thaw it n times. - - Therefore, if you have code like: - - gboolean frozen; - frozen = GTK_CLIST_FROZEN (clist); - gtk_clist_freeze (clist); - [...] - if (!frozen) - gtk_clist_thaw (clist); - - it will not work anymore. It must be, simply: - - gtk_clist_freeze (clist); - [...] - gtk_clist_thaw (clist); - -* The thread safety in GTK+ 1.2 is slightly different than - that which appeared in early versions in the 1.1 - development track. The main difference is that it relies on - the thread primitives in GLib, and on the thread-safe - GLib main loop. - - This means: - - - You must call g_thread_init() before executing any - other GTK+ or GDK functions in a threaded GTK+ program. - - - Idles, timeouts, and input functions are executed outside - of the main GTK+ lock. So, if you need to call GTK+ - inside of such a callback, you must surround the callback - with a gdk_threads_enter()/gdk_threads_leave() pair. - - [ However, signals are still executed within the main - GTK+ lock ] - - In particular, this means, if you are writing widgets - that might be used in threaded programs, you _must_ - surround timeouts and idle functions in this matter. - - As always, you must also surround any calls to GTK+ - not made within a signal handler with a - gdk_threads_enter()/gdk_threads_leave() pair. - - - There is no longer a special --with-threads configure - option for GTK+. To use threads in a GTK+ program, you - must: - - a) If you want to use the native thread implementation, - make sure GLib found this in configuration, otherwise, - call you must provide a thread implementation to - g_thread_init(). - - b) Link with the libraries returned by: - - gtk-config --libs gthread - - and use the cflags from: - - gtk-config --cflags gthread - - You can get these CFLAGS and LIBS by passing gthread - as the fourth parameter to the AM_PATH_GTK automake - macro. - -* Prior to GTK+-1.2, there were two conflicting interpretations - of widget->requistion. It was either taken to be - the size that the widget requested, or that size - modified by calls to gtk_widget_set_usize(). In GTK+-1.2, - it is always interpreted the first way. - - Container widgets are affected in two ways by this: - - 1) Container widgets should not pass widget->requisition - as the second parameter to gtk_widget_size_request(). - Instead they should call it like: - - GtkRequisition child_requisition; - gtk_widget_size_request (widget, &child_requisition); - - 2) Container widgets should not access child->requisition - directly. Either they should use the values returned - by gtk_widget_size_request(), or they should call - the new function: - - void gtk_widget_get_child_requisition (GtkWidget *widget, - GtkRequisition *requisition); - - which returns the requisition of the given widget, modified - by calls to gtk_widget_set_usize(). - - - -DON'T EDIT THIS FILE - changes are now maintained in the reference -manual, see docs/reference/gtk/changes-*.sgml. Also, when adding a -change to the manual, you should amend the docs for all -newly-deprecated features to point to the replacement for that -feature, and be sure the GTK_DISABLE_DEPRECATED guards are in place in -the header files. Be sure to add a note to the docs for EACH -deprecated function; don't just do the changes-*.sgml change. diff --git a/docs/Changes-2.0.txt b/docs/Changes-2.0.txt deleted file mode 100644 index 8dfb563dac..0000000000 --- a/docs/Changes-2.0.txt +++ /dev/null @@ -1,587 +0,0 @@ - - - -DON'T EDIT THIS FILE - changes are now maintained in the reference -manual, see docs/reference/gtk/changes-*.sgml. Also, when adding a -change to the manual, you should amend the docs for all -newly-deprecated features to point to the replacement for that -feature, and be sure the GTK_DISABLE_DEPRECATED guards are in place in -the header files. Be sure to add a note to the docs for EACH -deprecated function; don't just do the changes-*.sgml change. - - - - - -Incompatible Changes from GTK+-1.2 to GTK+-2.0: - -* gtk_container_get_toplevels() was removed and replaced with - gtk_window_list_toplevels(), which has different memory management - on the return value (gtk_window_list_toplevels() copies the GList - and also references each widget in the list, so you have to - g_list_free() the list after first unref'ing each list member). - -* The gdk_time* functions have been removed. This functionality - has been unused since the main loop was moved into GLib - prior to 1.2. - -* The signature for GtkPrintFunc (used for gtk_item_factory_dump_items) - has been changed to take a 'const gchar *' instead of 'gchar *', to - match what we do for glib, and other similar cases. - -* The detail arguments in the GtkStyleClass structure are now 'const gchar *'. - -* gtk_paned_set_gutter_size() has been removed, since the small handle tab - has been changed to include the entire area previously occupied by - the gutter. - -* gtk_paned_set_handle_size() has been removed, in favor of a style property, - since this is an option that only makes sense for themes to adjust. - -* GDK no longer selects OwnerGrabButtonMask for button presses. This means - that the automatic grab that occurs when the user presses a button - will have owner_events = FALSE, so all events are redirected to the - grab window, even events that would normally go to other windows of the - window's owner. - -* GtkColorSelectionDialog has now been moved into it's own set of files, - gtkcolorseldialog.c and gtkcolorseldialog.h. - -* gtk_widget_shape_combine_mask() now keeps a reference count on the - mask pixmap that is passed in. - -* the GtkPatternSpec has been moved to glib as GPatternSpec, the pattern - arguments to gtk_item_factory_dump_items() and gtk_item_factory_dump_rc() - have thusly been changed to take a GPatternSpec instead of GtkPatternSpec. - -* Type system changes: - - GTK_TYPE_OBJECT is not a fundamental type anymore. Type checks of the - style (GTK_FUNDAMENTAL_TYPE (some_type) == GTK_TYPE_OBJECT) - will not work anymore. As a replacement, (GTK_TYPE_IS_OBJECT (some_type)) - can be used now. - - The following types vanished: GTK_TYPE_ARGS, GTK_TYPE_CALLBACK, - GTK_TYPE_C_CALLBACK, GTK_TYPE_FOREIGN. The corresponding GtkArg - fields and field access macros are also gone. - - The following type aliases vanished: GTK_TYPE_FLAT_FIRST, - GTK_TYPE_FLAT_LAST, GTK_TYPE_STRUCTURED_FIRST, GTK_TYPE_STRUCTURED_LAST. - - The type macros GTK_TYPE_MAKE() and GTK_TYPE_SEQNO() vanished, use of - GTK_FUNDAMENTAL_TYPE() is discouraged. Instead, the corresponding GType - API should be used: G_TYPE_FUNDAMENTAL(), G_TYPE_DERIVE_ID(), - G_TYPE_BRANCH_SEQNO(). Note that the GLib type system doesn't build new - type ids based on a global incremental sequential number anymore, but - numbers new type ids sequentially per fundamental type branch. - - The following type functions vanished/were replaced: - Old Function Replacement - gtk_type_query() - being investigated - - gtk_type_set_varargs_type() - - gtk_type_get_varargs_type() - - gtk_type_check_object_cast() g_type_check_instance_cast() - gtk_type_check_class_cast() g_type_check_class_cast() - gtk_type_describe_tree() - - gtk_type_describe_heritage() - - gtk_type_free() - - gtk_type_children_types() g_type_children() - gtk_type_set_chunk_alloc() GTypeInfo.n_preallocs - gtk_type_register_enum() g_enum_register_static() - gtk_type_register_flags() g_flags_register_static() - gtk_type_parent_class() g_type_parent() / g_type_class_peek_parent() - Use of g_type_class_ref() / g_type_class_unref() and g_type_class_peek() - is recommended over usage of gtk_type_class(). - Use of g_type_register_static() / g_type_register_dynamic() is recommended - over usage of gtk_type_unique(). - -* Object system changes: - GtkObject derives from GObject, so is not the basic object type anymore. - This imposes the following source incompatible changes: - - GtkObject has no klass field anymore, an object's class can be retrived - with the object's coresponding GTK_<OBJECT>_GET_CLASS (object) macro. - - GtkObjectClass has no type field anymore, a class's type can be retrived - with the GTK_CLASS_TYPE (class) macro. - - GtkObjectClass does not introduce the finalize() and shutdown() methods - anymore. While shutdown() is intended for GTK+ internal use only, finalize() - is required by a variety of object implementations. GObjectClass.finalize - should be overriden here, e.g.: - static void gtk_label_finalize (GObject *gobject) - { - GtkLabel *label = GTK_LABEL (gobject); - - G_OBJECT_CLASS (parent_class)->finalize (object); - } - static void gtk_label_class_init (GtkLabelClass *class) - { - GObjectClass *gobject_class = G_OBJECT_CLASS (class); - - gobject_class->finalize = gtk_label_finalize; - } - - - the GtkObject::destroy signal can now be emitted multiple times on an object. - ::destroy implementations should check that make sure that they take this - into account, by checking to make sure that resources are there before - freeing them. For example: - if (object->foo_data) - { - g_free (object->foo_data); - object->foo_data = NULL; - } - - Also, ::destroy implementations have to release object references that - the object holds. Code in finalize implementations such as: - if (object->adjustment) - { - gtk_object_unref (object->adjustment); - object->adjustment = NULL; - } - have to be moved into the ::destroy implementations. The reason for doing - this is that all object reference cycles should be broken at destruction - time. - - Because the ::destroy signal can be emitted multiple times, it no longer - makes sense to check if a widget has been destroyed using the - GTK_OBJECT_DESTROYED() macro, and this macro has been removed. If - catching destruction is still needed, it can be done with a signal - connection to ::destroy. - -* Signal system changes: - The Gtk 2.0 signal merly proxies the GSignal system now. - For future usage, direct use of the GSignal API is recommended, - this avoids significant performance hits where GtkArg structures - have to be converted into GValues. For language bindings, - GSignal+GClosure provide a much more flexible and convenient - mechanism to hook into signal emissions or install class default - handlers, so the old GtkSignal API for language bindings is not - supported anymore. - Functions that got removed in the Gtk signal API: - gtk_signal_n_emissions(), gtk_signal_n_emissions_by_name(), - gtk_signal_set_funcs(), gtk_signal_handler_pending_by_id(), - gtk_signal_add_emission_hook(), gtk_signal_add_emission_hook_full(), - gtk_signal_remove_emission_hook(), gtk_signal_query(). - Also, the GtkCallbackMarshal argument to gtk_signal_connect_full() is - not supported anymore. - For many of the removed functions, similar variants are available - in the g_signal_* namespace. - The GSignal system perfomrs emissions in a slightly different manner than - the old GtkSignal code. Signal handlers that are connected to signal "foo" - on object "bar" while "foo" is being emitted, will not be called anymore - during the emission they were connected within. - -* Inserting and deleting text in GtkEntry though functions such - as gtk_entry_insert_text() now leave the cursor at its original - position in the text instead of moving it to the location of - the insertion/deletion. - -* The ->label field of GtkFrame widgets has been removed. (As part of - a change to allow the arbitrary widgets in the title position.) The - text can now be retrieved with the new function gtk_frame_get_text(). - -* The 'font' and 'font_set' declarations in RC files are now ignored. There - is a new 'font_name' field that holds the string form of a Pango font - -* A number of types in GDK have become subclasses of GObject. For the - most part, this should not break anyone's code. However, it's now - possible/encouraged to use g_object_ref()/g_object_unref() and other - GObject features with these GDK types. The converted types are: - GdkWindow, GdkDrawable, GdkPixmap, GdkImage, GdkGC, GdkDragContext, - GdkColormap - -* All drawables including pixmaps used to have a type tag, the - GdkWindowType enumeration, which included GDK_WINDOW_PIXMAP. - GdkWindowType is now a property of GdkWindow _only_, and there is - no GDK_WINDOW_PIXMAP. You can use the GDK_IS_PIXMAP() macro to see - if you have a pixmap, if you need to know that. - -* GtkStyle and GtkRcStyle are now subclasses of GObject as well. This - requires fairly extensive changes to theme engines quite badly, but - shouldn't affect most other code. - -* xthickness/ythickness have moved from GtkStyleClass to GtkStyle - (from class to instance). This gives themes a bit more flexibility - and is generally more of the Right Thing. You can trivially fix - your code with s/style->klass->xthickness/style->xthickness/g and - same for ythickness. - -* Some GtkStyle draw_ methods have been removed (cross, oval, ramp) - and others have been added (expander, layout). This will require - changes to theme engines. - -* If you were using private GDK types, they have been rearranged - significantly. You shouldn't use private types. ;-) - -* 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. - -* A number of functions in GDK have been renamed for consistency and - clarity. #defines to provide backwards compatibility have been - included, but can be disabled by defineing GDK_DISABLE_DEPRECATED. - - #define gdk_draw_pixmap gdk_draw_drawable - #define gdk_draw_bitmap gdk_draw_drawable - - #define gdk_window_get_size gdk_drawable_get_size - #define gdk_window_get_type gdk_window_get_window_type - #define gdk_window_get_colormap gdk_drawable_get_colormap - #define gdk_window_set_colormap gdk_drawable_set_colormap - #define gdk_window_get_visual gdk_drawable_get_visual - - #define gdk_window_ref gdk_drawable_ref - #define gdk_window_unref gdk_drawable_unref - #define gdk_bitmap_ref gdk_drawable_ref - #define gdk_bitmap_unref gdk_drawable_unref - #define gdk_pixmap_ref gdk_drawable_ref - #define gdk_pixmap_unref gdk_drawable_unref - - #define gdk_gc_destroy gdk_gc_unref - #define gdk_image_destroy gdk_image_unref - #define gdk_cursor_destroy gdk_cursor_unref - - (Note that g_object_ref() and g_object_unref() may be used for all of - the above _ref and _unref functions.) - - #define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height) \ - gdk_draw_pixmap(drawable,gc,source_drawable,source_x,source_y,x,y,width,height) - - #define gdk_rgb_get_cmap gdk_rgb_get_colormap - - gtk_widget_popup() was removed, it was only usable for GtkWindows, and - there the same effect can be achived by gtk_widget_set_uposition() and - gtk_widget_show(). - -* gdk_pixmap_foreign_new() no longer calls XFreePixmap() on the - pixmap when the GdkPixmap is finalized. This change corresponds - to the behavior of gdk_window_foreign_new(), and fixes a lot - of problems with code where the pixmap wasn't supposed to be - freed. If XFreePixmap() is needed, it can be done using the - destroy-notification facilities of g_object_set_data(). - -* GtkProgress/GtkProgressBar had serious problems in GTK 1.2. - - Only 3 or 4 functions are really needed for 95% of progress - interfaces; GtkProgress[Bar] had about 25 functions, and - didn't even include these 3 or 4. - - In activity mode, the API involves setting the adjustment - to any random value, just to have the side effect of - calling the progress bar update function - the adjustment - is totally ignored in activity mode - - You set the activity step as a pixel value, which means to - set the activity step you basically need to connect to - size_allocate - - There are ctree_set_expander_style()-functions, to randomly - change look-and-feel for no good reason - - The split between GtkProgress and GtkProgressBar makes no sense - to me whatsoever. - This was a big wart on GTK and made people waste lots of time, - both learning and using the interface. - So, we have added what we feel is the correct API, and marked all the - rest deprecated. However, the changes are 100% backward-compatible and - should break no existing code. - The following 5 functions are the new programming interface and you - should consider changing your code to use them: - void gtk_progress_bar_pulse (GtkProgressBar *pbar); - void gtk_progress_bar_set_text (GtkProgressBar *pbar, - const gchar *text); - void gtk_progress_bar_set_fraction (GtkProgressBar *pbar, - gfloat fraction); - - void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar, - gfloat fraction); - void gtk_progress_bar_set_orientation (GtkProgressBar *pbar, - GtkProgressBarOrientation orientation); - -* 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 - accesible otherwise. - -* GtkMenuPositionFunc has a new parameter push_in which controls how - menus placed outside the screen is handled. If this is set to true and - part of the menu is outside the screen then Gtk+ pushes it into the visible - area. Otherwise the menu is cut of at the end of the visible screen area. - - Regardles of what happens to the size of the menu, the result is always - that the items are placed in the same place as if the menu was placed - outside the screen, using menu scrolling if necessary. - -* The "draw" signal and virtual method on GtkWidget has been removed. - All drawing should now occur by invalidating a region of the widget - (call gdk_window_invalidate_rect() or gtk_widget_queue_draw() for - example to invalidate a region). GTK+ merges all invalid regions, - and sends expose events to the widget in an idle handler for the - invalid regions. gtk_widget_draw() is deprecated but still works; it - adds the passed-in area to the invalid region and immediately sends - expose events for the current invalid region. - Most widgets will work fine if you just delete their "draw" - implementation, since they will already have working expose_event - implementations. The draw method was rarely called in practice - anyway. - -* The GdkExposeEvent has a new region field. This can be used instead - of the area field if you want a more exact representation of the - area to update. - -* Sending synthetic exposes using gtk_widget_event is no longer allowed. - If you just need an expose call you should use gdk_window_invalidate_rect() - or gdk_window_invalidate_region() instead. For the case of container - widgets that need to propagate expose events to NO_WINDOW children - you can either use gtk_container_propagate_expose(), or chain to the - default container expose handler. - -* The draw_default and draw_focus methods/signals on GtkWidget are - gone; simply draw things in your expose handler. - gtk_widget_draw_focus() and gtk_widget_draw_default() wrapper - functions are also gone; just queue a draw on the widget, - or the part affected by the focus/default anyway. - Also, GtkWidget now has default implementations for focus_in_event - and focus_out_event. These set/unset GTK_HAS_FOCUS, and queue a - draw. So if your focus in/out handler just does that, you can delete - it. - -* GtkText and GtkTree are buggy and broken. We don't recommend using - them, and changing old code to avoid them is a good idea. The - recommended alternatives are GtkTextView and GtkTreeView. The - broken widgets are not declared in the headers by default; to use - them, define the symbol GTK_ENABLE_BROKEN during compilation. In - some future release, these widgets will be removed from GTK+. - -* GdkColorContext is gone; you probably weren't using it anyway. - Use GdkColormap and the gdk_rgb_* functions instead. - -* GtkMenuBar now draws the GtkContainer::border_width space outside - the frame, not inside the frame - -* In GTK 1.2, if an event handler returned TRUE it prevented - propagation of that event to parent widgets. That is, the - event signal would not be emitted on parent widgets. In - GTK 2.0, if an event handler returns TRUE, the current signal - emission on the current widget is immediately stopped. That is, - other callbacks connected to the signal will not be invoked. - -* gtk_toolbar_new() no longer has arguments. This function - was broken because the default GtkToolbarStyle (icons, text, both) - is now a user preference, which is overridden when you call - gtk_toolbar_set_style(). The constructor forced everyone to - override the preference, which was undesirable. So to port - your app, decide if you want to force the toolbar style - or conform to the user's global defaults; if you want to force - it, call gtk_toolbar_set_style(). - - The orientation arg was removed from toolbar_new() as well, just - because it wasn't very useful and we were breaking the function - anyway so had an opportunity to lose it. Call - gtk_toolbar_set_orientation() to set toolbar orientation. - -* GtkRange/GtkScrollbar/GtkScale were rewritten; this means that most - theme engines won't draw them properly, and any custom subclasses of - these widgets will need a rewrite (though if you could figure out - how to subclass the old version of GtkRange, you have our - respect). Also, GtkTroughType is gone. - -* The GtkContainer::focus signal/virtualfunction and - gtk_container_focus() call were replaced by - GtkWidget::focus and gtk_widget_child_focus(). - The semantics are the same, so you should be able to just - replace "container_class->focus = mywidget_focus" with - "widget_class->focus = mywidget_focus" and replace - gtk_container_focus() calls with gtk_widget_child_focus() calls. - - The purpose of this change was to allow non-containers to have - focusable elements. - -* gtk_rc_set_image_loader() and gtk_rc_load_image() has been removed, now - that GTK+ includes decent image loading capabilities itself. - -* An extra GtkSettings argument has been added to - gtk_rc_find_pixmap_in_path(). This function is only actually useful - from a theme engine during parsing, at which point the GtkSettings - is provided. - -* The child argument facility in gtkcontainer.c has been converted - to a child property facility using GParamSpec and other facilities - for GObject. - - - The set_child_arg and get_child_arg virtual methods have been - replaced with set_child_property / get_child_property, which - work similar to GObject->set_property/get_property. - - - Other removed functions with the replacements: - - gtk_container_add_child_arg_type => gtk_container_class_install_child_property - gtk_container_query_child_args => gtk_container_class_list_child_properties - gtk_container_child_getv => gtk_container_child_set_property - gtk_container_child_setv => gtk_container_child_get_property - gtk_container_add_with_args => gtk_container_add_with_properties - gtk_container_addv => gtk_container_add / gtk_container_child_set_property - -* gdk_image_get() (or rather its replacement, - gdk_drawable_get_image()) now handles errors properly by returning - NULL, previously it would crash. Also, a window being offscreen is - no longer considered an error; instead, the area being contains - undefined contents for the offscreen areas. In most cases, code - using gdk_image_get() should really be ported to - gdk_pixbuf_get_from_drawable(). - -* gtk_widget_set_usize() has been renamed to - gtk_widget_set_size_request(), however the old name still exists - unless you define GTK_DISABLE_DEPRECATED. - -* gtk_widget_set_uposition() is deprecated; use gtk_window_move(), - gtk_fixed_put(), or gtk_layout_put() instead. - -* gtk_window_set_policy() is deprecated. To get the effect of - "allow_shrink", call gtk_widget_set_size_request(window, 0, 0). To - get the effect of "allow_grow", call - gtk_window_set_resizable(window, TRUE). You didn't want the effect - of auto_shrink, it made no sense. But maybe if you were using it you - want to use gtk_window_resize (window, 1, 1) to snap a window back - to its minimum size (the 1, 1 will be rounded up to the minimum - window size). - -* The core GTK+ now takes care of handling mapping, unmapping and - realizing the child widgets of containers in - gtk_widget_set_parent(). In most cases, this allows container - implementations to be simplifid by removing the code in add() - methods to map and realize children. However, there are - a couple of things to watch out for here: - - - If the parent is realized before the add() happens, - gtk_widget_set_parent_window() must be called before - gtk_widget_set_parent(), since gtk_widget_set_parent() - will realize the child. - - - If a container depended on its children not being mapped - unless it did so itself (for example, GtkNotebook only - mapped the current page), then the new function - gtk_widget_set_child_visible() must be called to keep - widgets that should not be mapped not mapped. - - As part of this change, most containers also will no longer need - custom implementations of the map() and unmap() virtual - functions. The only cases where this is necessary are: - - - For !NO_WINDOW widgets, if you create children of widget->window - and don't map them in realize() then you must map them - in map(). [ In almost all cases, you can simply map the - windows in realize() ] - - - For NO_WINDOW widgets, if you create windows in your realize() - method, you must map then in map() and unmap them in unmap(). - -* gtk_widget_set_default_style (), gtk_widget_push_style (), - and gtk_widget_pop_style () have been removed, since they - did not work properly with themes and there were better - alternatives for modifying the appearance of widgets. - - You should generally use gtk_widget_modify_fg/bg/base/text/font - instead. - -* gtk_image_new() now takes no arguments and creates an empty GtkImage - widget. To create a GtkImage widget from a GdkImage (the least - common usage of GdkImage), use gtk_image_new_from_image. - -* GTK_SELECTION_EXTENDED is now deprecated, and neither the - GtkList/GtkTree nor the GtkCList/GtkCTree support - GTK_SELECTION_EXTENDED anymore. However, the old extended behavior - replaces MULTIPLE behavior. - -* The following variables are no longer exported from GDK. (Other variables - are also no longer exported; the following are the ones found used - externally in a large sample of GTK+ code.) - - Variable Replacement - ======== =========== - gdk_null_window_warnings None - did nothing in GTK+-1.2. - gdk_leader_window None - private variable - gdk_screen gdk_x11_get_default_screen () - gdk_root_window gdk_x11_get_default_root_xwindow () - gdk_root_parent gdk_get_default_root_window () - gdk_error_code/gdk_error_warnings gdk_error_trap_push()/pop() - gdk_display_name gdk_get_display () - gdk_wm_delete_window gdk_atom_intern ("WM_DELETE_WINDOW", FALSE) - gdk_wm_take_focus gdk_atom_intern ("WM_TAKE_FOCUS", FALSE) - gdk_wm_protocols gdk_atom_intern ("WM_PROTOCOLS", FALSE) - -* The handling of Colormaps and widgets has been changed: - - - The default colormap for widgets is now the GdkRGB colormap, not - the system default colormap. If you try to use resources created for - a widget (e.g., widget->style) with a window using the system - colormap, errors will result on some machines. - - - gtk_widget_push/pop_colormap() only cause the colormap to be - explicitely set on toplevel widgets not on all widgets. The - colormap for other widgets (when not set using - gtk_widget_set_colormap()), is determined by finding the nearest - ancestor with a colormap set on it explicitely, or if that - fails, the default colormap. - -* The default selected day for GtkCalendar is now the current day in the - month, not the first day in the month. The current month and year - were already used. - -* GDK is no longer put into threaded mode automatically when - g_thread_init() has been called. In order to use the - global GDK thread mutex with gdk_threads_enter() and - gdk_threads_leave(), you must call gdk_threads_init() explicitely. - - If you aren't using GDK and GTK+ functions from multiple threads, - there is no reason to call gdk_threads_init(). - -* The GtkPreviewInfo struct has had its visual and colormap fields - removed. Also, gtk_preview_get_cmap() and gtk_preview_get_visual() - are deprecated, as GdkRgb works on any colormap and visual. You no - longer need to gtk_widget_push_cmap (gtk_preview_get_cmap ()) in - your code. - -* The GtkBox, GtkTable, and GtkAlignment widgets now call - gtk_widget_set_redraw_on_allocate (widget, FALSE); on themselves. - If you want to actually draw contents in a widget derived from - one of these widgets, you'll probably want to change this - in your init() function. - -* A number of widgets are now NO_WINDOW widgets (most importantly - GtkButton, but also GtkRange and GtkNotebook) - - This has a couple of effects: - - - If you are deriving from one of these widgets, you need to - adapt your code appropriately -- for instance, drawing coordinates - start from widget->allocation.x, widget->allocation.y. - - - If you are embedding one of these widgets in a custom widget, - you must make sure you call gtk_container_propagate_expose() - correctly, as you must for any NO_WINDOW widgets. - - GtkFixed is a little special; it is now created by default as - a NO_WINDOW widget, but if you do - - gtk_fixed_set_has_window (fixed, TRUE); - - after creating a fixed widget, it will create a window and - handle it properly. - -* GtkLayout no longer has the xoffset, yoffset fields, which used - to store the difference between world and window coordinates for - layout->bin_window. These coordinate systems are now always - the same. - -* gtk_paint_focus(), gtk_draw_focus() and GtkStyle::draw_focus() - have been changed a bit: - - - A GtkStateType argument has been added to gtk_paint_focus() - - The default implementation of GtkStyle::draw_focus virtual - function now draws a focus rectangle whose width is - determinted by the GtkWidget::focus-width style property. - - The rectangle passed in is the bounding box, instead of - the rectangle used in the gdk_draw_rectangle() call, so it is - no longer necessary to subtract 1 from the width and height. - - - -DON'T EDIT THIS FILE - changes are now maintained in the reference -manual, see docs/reference/gtk/changes-*.sgml. Also, when adding a -change to the manual, you should amend the docs for all -newly-deprecated features to point to the replacement for that -feature, and be sure the GTK_DISABLE_DEPRECATED guards are in place in -the header files. Be sure to add a note to the docs for EACH -deprecated function; don't just do the changes-*.sgml change. diff --git a/docs/Makefile.am b/docs/Makefile.am index da2d4a909a..103682f86c 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -3,7 +3,6 @@ SUBDIRS = tutorial faq reference EXTRA_DIST = \ - debugging.txt \ defsformat.txt \ developers.txt \ dnd_internals.txt \ diff --git a/docs/debugging.txt b/docs/debugging.txt deleted file mode 100644 index 78fde099b6..0000000000 --- a/docs/debugging.txt +++ /dev/null @@ -1,106 +0,0 @@ -The GLIB, GDK, and GTK libraries have extensive support for -debugging the library and your programs. - -The amount of debugging being done can be determined both -at run time and compile time. - -COMPILE TIME OPTIONS --------------------- - -At compile time, the amount of debugging support included is -determined by four macros: - -G_ENABLE_DEBUG - If set, enable support for runtime checking. - -G_DISABLE_ASSERT - If set, disable g_assert macros - -G_DISABLE_CHECKS - If set, disable the g_return_if_fail and g_return_val_if_fail macros - -G_DISABLE_CAST_CHECKS - If set, don't check casts between different object types - - -Whether these macros are defined is controlled at configuration -time by the --enable-debug option. - ---enable-debug=minimum [default] - Enable only inexpensive sanity checking - sets G_DISABLE_CAST_CHECKS - ---enable-debug=yes - Enable all debugging support - sets G_ENABLE_DEBUG - ---enable-debug=no (or --disable-debug) - Disable all debugging support (fastest) - sets G_DISABLE_ASSERT, G_DISABLE_CHECKS, and G_DISABLE_CAST_CHECKS - -Note that !G_DISABLE_CHECKS and --enable-debug=no are to be considered -not only fast, but dangerous as they tend to destabilize even mostly -bug-free software by changing the effect of many bugs from simple warnings -into fatal crashes. Thus --enable-debug=no should *not* be used for -stable releases of gtk+. - - -RUNTIME OPTIONS ----------------- - -At run time, if GTK+ was compiled with debugging enabled, different -types of debugging information can be printed out. This is controlled -by the: - - GTK_DEBUG and GDK_DEBUG environment variables - --gtk-debug and --gdk-debug command line options - --gtk-no-debug and --gdk-no-debug command line options - -First the environment variables are applied, then the command line -options are applied in the order given on the command line. - -Each of these can either be the special value 'all', or a sequence of -':' separated options. (case is ignored). The environment variables -and the --gtk-debug and --gdk-debug options add debugging options and -the --gtk-no-debug and --gdk-no-debug options remove them. - -As noted below, some of these are useful in application debugging, but -most are only interested to those debugging the libraries - -For instance: - - GDK_DEBUG_FLAGS=misc:dnd testgtk --gdk-no-debug dnd --gdk-debug events - -runs testgtk with the 'misc' and 'events' debugging options. - -See glib/docs/debugging.txt for information about debugging signal emission -and the object system. - - - GDK_DEBUG - --------- - - Application relevant options: - - 'events' - Show all events received by GTK - - Options only interesting to library maintainers: - - 'misc' - Miscellaneous information - 'dnd' - Information about drag-and-drop - 'xim' - Information about X Input Method support - - - GTK_DEBUG - --------- - - Options only interesting to library maintainers: - - 'misc' - Miscellaneous information - 'text' - Information about text widget internals - 'tree' - Information about tree widget internals - 'updates' - Visual feedback about window updates - - - - 2001-08-13 Matthias Clasen - - 98/02/19 Owen Taylor |