forked from AuroraMiddleware/gtk
a626ad31e8
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 breaks 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.
150 lines
6.7 KiB
Plaintext
150 lines
6.7 KiB
Plaintext
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 breaks 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. ;-)
|
|
|
|
|
|
|
|
|