diff options
author | Owen Taylor <otaylor@redhat.com> | 2000-07-02 17:19:45 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2000-07-02 17:19:45 +0000 |
commit | d2058c2875606f33da5fdbb8a3a779588a2f7fc7 (patch) | |
tree | 54446b3a891c88d892fab74ad6817f5ea3eda74e /docs/Changes-2.0.txt | |
parent | fe7fb8c62fefd2dd822e950c69fdd194a9370951 (diff) | |
download | gtk+-d2058c2875606f33da5fdbb8a3a779588a2f7fc7.tar.gz |
Move Changes-1.4.txt to the appropriate name.
Sun Jul 2 13:19:12 2000 Owen Taylor <otaylor@redhat.com>
* docs/Changes-2.0.txt: Move Changes-1.4.txt to the appropriate
name.
Diffstat (limited to 'docs/Changes-2.0.txt')
-rw-r--r-- | docs/Changes-2.0.txt | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/docs/Changes-2.0.txt b/docs/Changes-2.0.txt new file mode 100644 index 0000000000..5b4f2507d7 --- /dev/null +++ b/docs/Changes-2.0.txt @@ -0,0 +1,192 @@ +Incompatible Changes from GTK+-1.2 to GTK+-1.4: + +* 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. + +* 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. + +* 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. + +- 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. + +- 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_defualt_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_COMPAT_H. + + #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.) + + #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 + +- 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().
\ No newline at end of file |