gtk-web r623 - in trunk: . notes
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk-web r623 - in trunk: . notes
- Date: Tue, 29 Jan 2008 18:22:42 +0000 (GMT)
Author: mr
Date: Tue Jan 29 18:22:42 2008
New Revision: 623
URL: http://svn.gnome.org/viewvc/gtk-web?rev=623&view=rev
Log:
* notes/gtk-1.2-notes.txt: Added for historical reference.
Added:
trunk/notes/gtk-1.2-notes.txt
Modified:
trunk/ChangeLog
Added: trunk/notes/gtk-1.2-notes.txt
==============================================================================
--- (empty file)
+++ trunk/notes/gtk-1.2-notes.txt Tue Jan 29 18:22:42 2008
@@ -0,0 +1,275 @@
+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().
+
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]