]> Pileus Git - ~andy/gtk/blob - README.in
Add a toggle-cursor-visibility keybinding signal, and bind F7 to it.
[~andy/gtk] / README.in
1 General Information
2 ===================
3
4 This is GTK+ version @GTK_VERSION@. GTK+ is a multi-platform toolkit for
5 creating graphical user interfaces. Offering a complete set of widgets,
6 GTK+ is suitable for projects ranging from small one-off projects to
7 complete application suites.
8
9 GTK+ is free software and part of the GNU Project. However, the
10 licensing terms for GTK+, the GNU LGPL, allow it to be used by all
11 developers, including those developing proprietary software, without any
12 license fees or royalties.
13
14 The official ftp site is:
15   ftp://ftp.gtk.org/pub/gtk
16
17 The official web site is:
18   http://www.gtk.org/
19
20 Information about mailing lists can be found at
21   http://www.gtk.org/mailinglists.html
22
23
24 Installation
25 ============
26
27 See the file 'INSTALL'
28
29
30 Release notes for 2.12
31 ======================
32
33 * Functions: gtk_about_dialog_get/set_name() were deprecated in favour of
34   gtk_about_dialog_get/set_program_name(), the GtkAboutDialog now uses the
35   "program-name" property instead of the conflicting "name" property.
36
37 Release notes for 2.10
38 ======================
39
40 * The tiff loader now requires libtiff 3.6.0 or later.
41
42 * The hexadecimal Unicode input feature has been reworked. It no longer
43   blocks the use of the sixteen Ctrl-Shift-<hex digit> key sequences. Now
44   it only uses Ctrl-Shift-u.
45
46 * A memory leak in GtkStyle handling has been fixed. This may expose bugs
47   in third-party widgets which forget to call gtk_style_attach() in their
48   realize functions.
49
50 * Range widgets like GtkScrollbar now render their arrows insensitive
51   when the slider is at the end. Applications which react to arrow
52   clicks even if the slider is at the end may want to use the new
53   gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
54   prevent the arrows from being rendered insensitive.
55
56 * GtkObject now uses the "floating reference" support in GObject. 
57   GTK_OBJECT_IS_FLOATING() will still work, but direct checking
58   of the GTK_FLOATING flag will no longer detect the floating 
59   reference. Details about floating references can be found in the docs:
60   http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref
61
62 * Accelerators like (_F) are now stripped from labels when they are 
63   displayed in toolbars. If this is not wanted, the feature can be 
64   suppressed by inserting a Unicode control character, e.g ZWNJ.
65
66 * The pixbuf theme engine can now customize expanders (in GtkTreeView
67   and GtkExpander) and resize grips, using the new EXPANDER and
68   RESIZE_GRIP function values.
69
70 * Dialogs created by gtk_about_dialog_new() no longer hide automatically
71   when the user clicks close. It is the applications responsibility to
72   hide or destroy the dialog.
73
74 * Several new signals have been added to GtkNotebook. Care has been taken
75   to choose signal names which do not collide with signals added by well-known
76   derived classes. The names which can no longer be used for signals in 
77   objects derived from GtkNotebook are page-reordered, page-removed and
78   page-added.
79
80 * Due to the interface changes in the file chooser backend interface, 
81   the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem 
82   backends have to be ported to the new interface, other modules, such as 
83   theme engines, input method modules or pixbuf loaders have to be rebuilt 
84   so that they are installed in the right place for GTK+ to find them.
85
86
87 Release notes for 2.8
88 =====================
89
90 * GTK+ 2.8 and Pango 1.10 require the cairo library.
91
92 * The default theme has been renamed to "Raleigh". Existing configurations
93   specifying the "Default" theme name should still work.
94
95 * The GtkTreeView::enable-search property has been changed to control
96   only typeahead search, not the C-f keybinding to start an interactive
97   search. To turn off interactive searching completely, you have to
98   set GtkTreeView::search-column to -1.
99
100 * The restriction on using the same cell renderer in multiple columns
101   of a GtkTreeView is now more strictly enforced.
102
103 * In GTK+ 2.8, GtkCalendar uses nl_langinfo() (if available) to determine
104   the first day of the week. Thus, it is possible to select the first day
105   of the week independently from the language, by setting LC_TIME.
106
107 * In GTK+ 2.8, the gtk-update-icon-cache utility includes image data
108   in the icon caches, which will make the icon cache files larger than
109   the one produced by GTK+ 2.6. This change will reduce the memory
110   overhead of icon themes at runtime, since all GTK+ applications can
111   share the image data in memory.
112
113 * In 2.8, GDK emits GdkEventGrabBroken events when a keyboard or pointer
114   grab is broken. On X11, this can happen if the same application grabs
115   again, or if the window used for the grab becomes unviewable. It happens
116   more often on Win32. Applications which use grabs should pay attention
117   to these events and do the necessary cleanups when the grab is lost.
118 * The GIOChannel code for sockets on win32 has been rewritten.
119   Applications who make non-trivial use of GIOChannels on win32 should
120   be watched for possible problems.
121
122 * GLib 2.8 uses atomic operations to implement reference counting, thus
123   g_object_ref/unref, g_closure_ref/sink/unref and g_iochannel_ref/unref
124   can be used without locking in multithreaded applications. Note that
125   other modifications, like concurrent setting of properties still require
126   locking.
127
128 * g_convert() and related character set conversion functions have been
129   fixed to emit pending shift states and to not cache iconv descriptors
130   across multiple calls, since that is problematic for some encodings.
131   Note that these functions are not suitable for streaming conversions;
132   use g_iconv() to do streaming conversion.
133
134
135 Release notes for 2.6
136 =====================
137
138 * GTK+ 2.6 supports clipboard persistency. To make use of this feature,
139   a clipboard manager following the specification at
140   http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec
141   must be running. A sample implementation of such a clipboard manager
142   is available at 
143   http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz
144   Applications can use the function gdk_display_supports_clipboard_persistence() 
145   to find out if clipboard persistence is available.
146
147 * Notification on clipboard ownership changes via GdkOwnerChange events 
148   requires the XFIXES X extension. Applications can use the function
149   gdk_display_supports_selection_notification() to find out if ownerchip
150   change notification is available.
151
152 * The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme 
153   specification. Setting the XDG_DATA_DIRS environtment variable may be 
154   necessary if your icons aren't installed in the default location 
155   /usr/share/icons.
156
157 * The icon theme code in GTK+ 2.6 can make use of mmap()able cache files
158   to avoid a lot of disk searching overhead. GTK+ includes a utility named
159   gtk-update-icon-cache to generate these cache files. For further details,
160   see the gtk-update-icon-cache man page or the GTK+ documentation.
161
162 * To reduce code size and improve efficiency, GTK+, when compiled 
163   with the GNU toolchain, has separate internal and external entry 
164   points for exported functions. The internal names, which begin with 
165   IA__, may be seen when debugging a GTK+ program.
166
167 * The following functions have been deprecated in GTK+ 2.6:
168   gdk_pango_context_set_colormap
169   gtk_cell_renderer_editing_canceled
170
171 * The new GtkFileChooser widget emphasizes simplicity and thus does 
172   not provide a navigation entry by default when opening files. 
173   Experienced command line users will likely want to make heavy use of
174   the location dialog brought up by the Control-L key shortcut.
175
176 * The GTK+ libraries use an '_' prefix to indicate private symbols that
177   must not be used by applications. On some platforms, symbols beginning 
178   with prefixes such as _gtk, _gdk, and _pango will be exported
179   from the library, on others not. In no case can applications
180   use these private symbols. In addition to that, GTK+ 2.6 makes several
181   symbols private which were not in any installed header files and
182   were never intended to be exported.
183
184 * The gdk_pixbuf_xlib library included in the contrib/ directory 
185   and the framebuffer GDK backend included in the gdk/linux-fb directory
186   of GTK+ are provided on an as-is basis and have not been tested at all. 
187   No guarantees about the degree of workingness or about future
188   compatibility are provided.
189
190 * On Unix, the assumption of GLib and GTK+ by default is that filenames on 
191   the filesystem are encoded in UTF-8 rather than the encoding of the locale;
192   the GTK+ developers consider that having filenames whose interpretation
193   depends on the current locale is fundamentally a bad idea.
194
195   If you have filenames encoded in the encoding of your locale, then you 
196   may want to set the G_FILENAME_ENCODING environment variable:
197   
198    G_FILENAME_ENCODING=@locale
199    export G_FILENAME_ENCODING
200
201   (Earlier versions of GLib 2.x required a different environment variable
202   setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this 
203   is still supported, but G_FILENAME_ENCODING is preferred.)
204   Best integration of GTK+ 2.6 with the environment is achieved by 
205   using a UTF-8 locale.
206
207   On Windows, filenames passed to GTK+ should always be in UTF-8, as
208   in GLib 2.6. This is different than in previous versions of GTK+
209   where the system codepage was used. As in GLib, for DLL ABI
210   stability, applications built against previous versions of GTK+ will
211   use entry points providing the old semantics.
212
213   When compiling against GTK+ 2.6, applications intended to be
214   portable to Windows must take the UTF-8 file name encoding into
215   consideration, and use the gstdio wrappers to access files whose 
216   names have been constructed from strings returned from GTK+ or GLib.
217
218
219 How to report bugs
220 ==================
221
222 Bugs should be reported to the GNOME bug tracking system.
223 (http://bugzilla.gnome.org, product gtk+.) You will need to create an
224 account for yourself.
225   
226 In the bug report please include:
227   
228 * Information about your system. For instance:
229
230    - What operating system and version
231    - What version of X
232    - For Linux, what version of the C library
233
234   And anything else you think is relevant.
235
236 * How to reproduce the bug. 
237
238   If you can reproduce it with one of the tests or demos built with GTK+, 
239   such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise, 
240   please include a short test program that exhibits the behavior. As a 
241   last resort, you can also provide a pointer to a larger piece of software 
242   that can be downloaded.
243
244 * If the bug was a crash, the exact text that was printed out when the
245   crash occured.
246
247 * Further information such as stack traces may be useful, but is not
248   necessary. If you do send a stack trace, and the error is an X error,
249   it will be more useful if the stacktrace is produced running the test
250   program with the --sync command line option.
251
252
253 Patches
254 =======
255
256 Patches should also be submitted to bugzilla.gnome.org. If the patch
257 fixes an existing bug, add the patch as an attachment to that bug
258 report.
259
260 Otherwise, enter a new bug report that describes the patch, and attach
261 the patch to that bug report.
262
263 Bug reports containing patches should include the PATCH keyword in their
264 keyword fields. If the patch adds to or changes the GTK+ programming
265 interface, the API keyword should also be included.
266   
267 Patches should be in unified diff form. (The -u option to GNU diff.)