]> Pileus Git - ~andy/gtk/blob - docs/gtk.texi
373e1e23e19a496b66301763148a4e3a8d2be7f5
[~andy/gtk] / docs / gtk.texi
1 \input texinfo @c -*-texinfo-*-
2 @c Copyright (C) 1996 by Peter Mattis. All rights reserved.
3 @c
4 @c %**start of header
5 @setfilename gtk.info
6 @settitle GTK
7 @setchapternewpage odd
8 @include macros.texi
9 @c %**end of header
10
11 @set edition 1.0
12 @set update-date 16 January 1998
13 @set update-month January 1998
14
15 @ifinfo
16 This file documents GTK, the General Toolkit
17
18 Copyright (C) 1996 Peter Mattis
19 Copyright (C) 1997 Peter Mattis
20
21 Permission is granted to make and distribute verbatim copies of this
22 manual provided the copyright notice and this permission notice are
23 preserved on all copies
24
25 @ignore
26 Permission is granted to process this file throught TeX and print the
27 results, provided the printed document carries copying permission notice
28 identical to this one except for the removal of this paragraph (this
29 paragraph not being relevant to the printed manual).
30
31 @end ignore
32 Permission is granted to copy and distribute modified versions of this
33 manual under the conditions for verbatim copying, provided that the
34 entire resulting derived work is distributed under the terms of a
35 permission notice identical to this one.
36
37 Permission is granted to copy and distribute translations of this manual
38 into another language, under the above conditions for modified versions,
39 except that this permission notice may be stated in a translation
40 approved by Peter Mattis.
41 @end ifinfo
42
43 @titlepage
44 @title The General Toolkit
45 @subtitle Version @value{edition}
46 @subtitle @value{update-month}
47 @author by Peter Mattis
48
49 @page
50 @vskip 0pt plus 1filll
51 Copyright @copyright{} 1996 Peter Mattis
52 @vskip 0pt plus 1fill
53 Copyright @copyright{} 1997 Peter Mattis
54
55 Permission is granted to make and distribute verbatim copies of this
56 manual provided the copyright notice and this permission notice are
57 preserved on all copies.
58
59 Permission is granted to copy and distribute modified versions of this
60 manual under the conditions for verbatim copying, provided that the
61 entire resulting derived work is distributed under the terms of a
62 permission notice identical to this one.
63
64 Permission is granted to copy and distribute translations of this manual
65 into another language, under the above conditions for modified versions,
66 except that this permission notice may be stated in a translation
67 approved by Peter Mattis.
68 @end titlepage
69
70 @dircategory User Interface Toolkit
71 @direntry
72 * GTK: (gtk).           The General Toolkit
73 @end direntry
74
75 @node Top, Copying, (dir), (dir)
76 @top The General Toolkit
77 @ifinfo
78 This is edition @value{edition} of the GTK documentation,
79 @w{@value{update-date}}.
80 @end ifinfo
81 @c FIXME: Do a introduction to the GTK?
82
83 @menu
84 * Copying::                     Your rights.
85 * Overview::                    What is GTK?
86 * Objects::                     Object overview.
87 * Signals::                     Signals overview.
88 * Widgets::                     Widget overview.
89 * Other Objects::               Utility objects.
90 * Miscellaneous::               Initialization, exit and other features.
91 * Examples::                    Using GTK.
92 * Object Implementation::       Object internals.
93 * Signal Implementation::       Signal internals.
94 * Widget Implementation::       Widget internals.
95 * Function Index::              Index of functions.
96 * Concept Index::               Index of concepts.
97 @end menu
98
99 @node Copying, Overview, Top, Top
100 @comment node-name, next, previous, up
101 @chapter Copying
102 @cindex Copying
103
104 GTK is @dfn{free}; this means that everyone is free to use it and free
105 to redestribute it on a free basis. GTK is not in the public domain; it
106 is copyrighted and there are restrictions on its distribution, but
107 these restrictions are designed to permit everything that a good
108 cooperating citizen would want to do. What is not allowed is to try to
109 prevent others from further sharing any version of GTK that they might
110 get from you.
111
112 Specifically, we want to make sure that you have the right to give away
113 copies of GTK, that you receive source code or else can get it if you
114 want it, that you can change GTK or use pieces of it in new free
115 programs, and that you know you can do these things.
116
117 To make sure that everyone has such rights, we have to forbid you to
118 deprive anyone else of these rights. For example, if you distribute
119 copies of GTK, you must give the recipients all the rights that you
120 have. You must make sure that they, too, receive or can get the source
121 code. And you must tell them their rights.
122
123 Also, for my own protection, we must make certain that everyone finds
124 out that there is no warranty for GTK. If GTK is modified by someone
125 else and passed on, we want their recipients to know that what they have
126 is not what we distributed, so that any problems introduced by others
127 will no reflect on our reputation.
128
129 The precise conditions of the licenses for GTK are found in the General
130 Public Licenses that accompanies it.
131
132
133 @node Overview, Objects, Copying, Top
134 @comment node-name, next, previous, up
135 @chapter What is GTK?
136 @cindex Overview
137
138 GTK is a library for creating graphical user interfaces similar to the
139 Motif ``look and feel''. It is designed to be small and efficient, but
140 still flexible enough to allow the programmer freedom in the interfaces
141 created. GTK allows the programmer to use a variety of standard user
142 interface widgets (@pxref{Widgets}) such as push, radio and check
143 buttons, menus, lists and frames. It also provides several ``container''
144 widgets which can be used to control the layout of the user interface
145 elements.
146
147 GTK provides some unique features. (At least, I know of no other widget
148 library which provides them). For example, a button does not contain a
149 label, it contains a child widget, which in most instances will be a
150 label. However, the child widget can also be a pixmap, image or any
151 combination possible the programmer desires. This flexibility is adhered
152 to throughout the library.
153
154
155 @node Objects, Signals, Overview, Top
156 @comment node-name, next, previous, up
157 @chapter Object Overview
158 @cindex Objects
159
160 GTK implements a semi-simple class mechanism and an associated class
161 hierarchy for widgets and several other useful objects. The GtkObject
162 type is the root of the class hierarchy. It provides a few items needed
163 by all classes, the foundation for the signal (@pxref{Signals})
164 mechanism and the ``destroy'' method.
165
166 The class hierarchy is defined by a type hierarchy. This hierarchy
167 allows queries to be made in regards to a type. The basic query that can
168 be performed is asking whether a given type has an ``is a'' relation
169 with another type. For instance, it is common to ask whether a general
170 widget pointer is a type of specific widget so that runtime sanity
171 checks can be made.
172
173 @section Type utility functions
174
175 The @code{GtkTypeInfo} structure is used to communicate information to
176 @code{gtk_type_unique} as opposed to passing in large numbers of
177 parameters.
178
179 @example
180 typedef struct _GtkTypeInfo GtkTypeInfo;
181
182 struct _GtkTypeInfo
183 @{
184   gchar *type_name;
185   guint object_size;
186   guint class_size;
187   GtkClassInitFunc class_init_func;
188   GtkObjectInitFunc object_init_func;
189   GtkArgFunc arg_func;
190 @}
191 @end example
192
193 @itemize @bullet
194 @item
195 The @code{type_name} field refers to the name of the type. It is
196 convention for the type name to be the same as the C structure type. For
197 example, the type name of the @code{GtkObject} structure is
198 ``GtkObject''.
199
200 @item
201 The @code{object_size} field refers to the size in bytes of the C
202 structure. The easiest (and portable) means of computing this size is by
203 using the C @code{sizeof} operator. For instance, the sizeof of the
204 @code{GtkObject} structure is computed by doing @code{sizeof
205 (GtkObject)}.
206
207 @item
208 The @code{class_size} field refers to the size in bytes of the C
209 structure for the class. Again, the @code{sizeof} operator should be
210 used to compute this value.
211
212 @item
213 The @code{class_init_func} field is a callback which is used by the type
214 mechanism to initialize class specific fields. The single argument this
215 function takes is a pointer to a class structure.
216
217 @item
218 The @code{object_init_func} field is a callback which is used by the
219 type mechanism to initialize object specific fields. The single argument
220 this functions takes is a pointer to an object structure.
221
222 @end itemize
223
224 @deftypefun guint gtk_type_unique (guint @var{parent_type}, GtkTypeInfo *@var{type_info})
225 The @var{parent_type} is simply the value of the new types parent
226 type. If @var{parent_type} is 0, then the new type is the root of the
227 type hierarchy. @var{type_info} is a pointer to a structure which
228 contains necessary information for construction of the new
229 type. Specifically, the @code{type_name}, @code{object_size} and
230 @code{class_size} fields are required. The @code{class_init_func},
231 @code{object_init_func} and @code{value_init_func} fields may be NULL.
232 @end deftypefun
233
234 @deftypefun gchar* gtk_type_name (guint @var{type})
235 The returned string is the name of @var{type} as specified to
236 @code{gtk_type_unique}.
237 @end deftypefun
238
239 @deftypefun guint gtk_type_from_name (guchar *@var{name})
240 Return the type associated with @var{name}. If there is no type
241 associated with @var{name}, then 0 will be returned.
242 @end deftypefun
243
244 @deftypefun guint gtk_type_parent (guint @var{type})
245 Returns the parent type of @var{type} or 0 if @var{type} is the root of
246 the type hierarchy.
247 @end deftypefun
248
249 @deftypefun gpointer gtk_type_class (guint @var{type})
250 Returns the initialized class structure for @var{type}. The class
251 structure is actually created and initialized the first time it is
252 needed. If creation and initialization occurs, the @code{class_size}
253 field of the @code{GtkTypeInfo} structure used to initialize this type
254 is used to determine how large the class structure is. The
255 @code{class_init_func} field from the @code{GtkTypeInfo} structure is
256 called for all the members in the types ancestry, including the
257 type. The order of this invocation proceeds from the root on down. For
258 example, the @code{GtkWidgetClass} is first initialized as an
259 @code{GtkObjectClass} by the object class initialization routine and
260 then by the widget class initialization routine. This allows the widget
261 class initialization routine to override values set by the object class
262 initialization routine. The returned structure is shared by all objects
263 of @var{type} and, as such, should not be modified.
264 @end deftypefun
265
266 @deftypefun gpointer gtk_type_new (guint @var{type})
267 Returns a new instance of an @var{type} object. The object structure is
268 created and initialized similarly to the class structure (as described
269 above). The @code{object_size} and @code{object_init_func} fields of the
270 @code{GtkTypeInfo} structure are used to determine the objects allocated
271 size and the object specific initialization routine. Similarly to the
272 class initialization, all the object initialization routines from the
273 root on down to the particular type being created are invoked.
274 @end deftypefun
275
276 @deftypefun void gtk_type_describe_heritage (guint @var{type})
277 Prints the type heritage for @var{type}. The heritage for a type
278 includes the type and all its parent types up the type tree.
279 @end deftypefun
280
281 @deftypefun void gtk_type_describe_tree (guint @var{type}, gint @var{show_size})
282 Prints the type tree which starts at @var{type}. @var{show_size} is a
283 boolean which determines whether type sizes are printed.
284 @end deftypefun
285
286 @deftypefun gint gtk_type_is_a (guint @var{type}, guint @var{is_a_type})
287 A predicate function which determines whether the relation @var{type}
288 is_a @var{is_a_type} is true.
289 @end deftypefun
290
291 @section Object functions
292
293 The GtkObject type is the root of the type hierarchy used by GTK. It
294 provides a minimal set of fields used to implement the actual
295 object, class and signal mechanisms, as well as several utility routines
296 which make dealing with objects easier.
297
298 For the adventurous, see @ref{Object Implementation}.
299
300 @deftypefun guint gtk_object_get_type (void)
301 Returns the @code{GtkObject} type identifier.
302 @end deftypefun
303
304 @deftypefun void gtk_object_class_add_signals (GtkObjectClass *@var{class}, gint *@var{signals}, gint @var{nsignals})
305 Adds @var{signals} to the @code{signals} field in the GtkObjectClass
306 structure @var{class}. @xref{Signals}.
307 @end deftypefun
308
309 @deftypefun void gtk_object_destroy (GtkObject *@var{object})
310 Performs checks to make sure it is alright to destroy @var{object} and
311 then emits the @code{destroy} signal. The check which is performed is to
312 make sure @var{object} is not already processing another signal. If this
313 were the case then destroying the object immediately would undoubtedly
314 cause problems as the other signal would not be able to tell the object
315 was destroyed. The solution is that if @var{object} is processing another
316 signal we mark @var{object} is needing to be destroyed. When we finish
317 processing of the other signal we check whether the object needs to be
318 destroyed.
319 @end deftypefun
320
321 The GtkObject type provides a mechanism for associating arbitrary
322 amounts of data with an object. The data is associated with the object
323 using a character string key. The functions @code{gtk_object_set_data},
324 @code{gtk_object_get_data}, and @code{gtk_object_remove_data} are the
325 interface to this mechanism. Two other routines,
326 @code{gtk_object_set_user_data} and @code{gtk_object_get_user_data},
327 exist as convenience functions which simply use the same mechanism.
328
329 @deftypefun void gtk_object_set_data (GtkObject *@var{object}, const char *@var{key}, gpointer @var{data})
330 Associate @var{data} with @var{key} in the data list of @var{object}.
331 @end deftypefun
332
333 @deftypefun gpointer gtk_object_get_data (GtkObject *@var{object}, const char *@var{key})
334 Retrieve the data associated with @var{key} in the data list of @var{object}.
335 @end deftypefun
336
337 @deftypefun void gtk_object_remove_data (GtkObject *@var{object}, const char *@var{key})
338 Remove the data associated with @var{key} in the data list of @var{object}.
339 @end deftypefun
340
341 @deftypefun void gtk_object_set_user_data (GtkObject *@var{object}, gpointer @var{data})
342 Sets @var{data} into the @code{user_data} field of @var{object}.
343 @end deftypefun
344
345 @deftypefun gpointer gtk_object_get_user_data (GtkObject *@var{object})
346 Returns the @code{user_data} field of @var{object}.
347 @end deftypefun
348
349 The GtkObject type also provides a mechanism for specifying
350 initialization values for fields. This general mechanism is called
351 object value stacks. The reason for using value stacks is that they can
352 simplify the life of the programmer. For instance, by default widgets
353 are non-visible when created. However, the ``visible'' value for widgets
354 may be specified so that widgets are made visible when created. (FIXME:
355 unfinished).
356
357 @deftypefun void gtk_object_value_stack_new (guint @var{object_type}, const gchar *@var{value_id}, GtkParamType @var{value_type})
358 @end deftypefun
359
360 @deftypefun void gtk_object_push_value (guint @var{object_type}, const gchar *@var{value_id}, @dots{})
361 Push a value on the value stack specified by @var{object_type} and
362 @var{value_id}. The type of value is implicitly given in the context of
363 @var{object_type} and @var{value_id}. (That is, it is not specified
364 explicitly in the function call). Only a single extra argument is
365 expected which is the data which is to be placed on the stack.
366 @end deftypefun
367
368 @deftypefun void gtk_object_pop_value (guint @var{object_type}, const gchar *@var{value_id})
369 Pop a value of the value stack specified by @var{object_type} and
370 @var{value_id}.
371 @end deftypefun
372
373 @deftypefun gint gtk_object_peek_value (guint @var{object_type}, const gchar *@var{value_id}, gpointer @var{data})
374 Peek at the value on the top of the value stack specified by
375 @var{object_type} and @var{value_id}. The @var{data} argument is
376 interpreted as the location of where to place the ``peeked'' data. For
377 instance, if the peeked data is of type @code{GTK_PARAM_POINTER}, then
378 @var{data} will be a pointer to a pointer. If the value stack is empty
379 or does not exist or an error occurs, @code{gtk_object_peek_value} will
380 return @code{FALSE}. On success it will return @code{TRUE}.
381 @end deftypefun
382
383
384 @node Signals, Widgets, Objects, Top
385 @comment node-name, next, previous, up
386 @chapter Signals Overview
387 @cindex Signals
388
389 Signals are GTK's method for objects to perform callbacks. A signal is
390 an event which occurs upon an object. The programmer can connect to a
391 signal of an object which involves specifying a function to be called
392 when that signal is emitted in the specified object.
393
394 When a signal is emitted, both the class function associated with the
395 signal (when it was defined) and all signal handlers installed for that
396 signal on the particular object emitting the signal are called. The
397 widget programmer can specify whether the class function is to be called
398 before after or both before and after the signal handlers installed by
399 the widget user. The widget user can, however, specify that their signal
400 handler is to be run after the class function (using the ``_after''
401 signal connection routines). Any signal handling function can emit the
402 same signal on the same object while it is running causing that signal
403 emittion to either restart or to run recursively. Additionally, signal
404 emittion can be terminated prematurely. While both such abilities are
405 rarely used, they do allow for greater flexibility in regards to
406 signals. For instance, a programmer can attach to the key press event
407 signal and intercept all tab key presses from a widget. This particular
408 example is used in the file selection dialog to implement tab completion
409 of filenames and prevent the entry widget from inserting the tab into
410 its buffer.
411
412 Signals are selected using either an integer identifier or a character
413 string name. It is convention to name the signal the same as the class
414 function which is associated with it. There are two versions of most of
415 the signal functions, one which takes an integer identifier and one
416 which takes a character string name for the signal.
417
418 @deftypefun gint gtk_signal_new (gchar *@var{name}, GtkSignalRunType @var{run_type}, gint @var{object_type}, gint @var{function_offset}, GtkSignalMarsahller @var{marshaller}, GtkParamType @var{return_val}, gint @var{nparams}, @dots{})
419 Create a new signal and give it the character string identifier
420 @var{name}. @var{name} needs to be unique in the context of
421 @var{object_type}'s branch of the class hierarchy. That is,
422 @var{object_type} cannot create a signal type with the same name as a
423 signal type created by one of its parent types.
424
425 @var{run_type} specifies whether the class function should be run before
426 (@code{GTK_RUN_FIRST}), after (@code{GTK_RUN_LAST}) or both before and
427 after normal signal handlers (@code{GTK_RUN_BOTH}). Additionally, the
428 @code{GTK_RUN_NO_RECURSE} value can be or'ed with any of those values to
429 specify that the signal should not be recursive. By default, emitting
430 the same signal on the same widget will cause the signal to be emitted
431 twice. However, if the @code{GTK_RUN_NO_RECURSE} flag is specified,
432 emitting the same signal on the same widget will cause the current
433 signal emittion to be restarted. This allows the widget programmer to
434 specify the semantics of signal emittion on a per signal
435 basis. (The @code{GTK_RUN_NO_RECURSE} flag is used by the GtkAdjustment
436 widget).
437
438 The @var{function_offset} is the byte offset from the start of the class
439 structure to the class function field within the class structure. The
440 easiest means to compute this offset is by using the
441 @code{GTK_SIGNAL_OFFSET} macro which takes the class structure type as
442 the first argument and the field as the second argument. For example,
443 @code{GTK_SIGNAL_OFFSET (GtkObjectClass, destroy)} will give the offset
444 of the @code{destroy} class function within the
445 @code{GtkObjectClass}. Note: An offset is specified instead of an
446 absolute location since there will be multiple instances of a class
447 structure being referenced. (The @code{GtkWidgetClass} structure ``is
448 a'' @code{GtkObjectClass} structure, etc.)
449
450 The @var{marshaller} function is used to invoke a signal handler. Since
451 signal handlers may take different parameters and return values and a
452 general mechanism for invoking them is not apparent, the approach of
453 making the signal creator responsible for invoking the signal handler
454 was taken. (FIXME: unfinished).
455
456 The @var{return_val} and @var{nparams} and the remaining arguments
457 specify the return value and the arguments to the signal handler
458 respectively. Note: There is an implicit first argument to every signal
459 handler which is the widget the signal has been emitted from. The
460 variable argument list (@var{@dots{}}) specifies the types of the
461 arguments. These can be one of @code{GTK_PARAM_CHAR},
462 @code{GTK_PARAM_SHORT}, @code{GTK_PARAM_INT}, @code{GTK_PARAM_LONG},
463 @code{GTK_PARAM_POINTER} or @code{GTK_PARAM_FUNCTION}. It is undefined
464 to specify @code{GTK_PARAM_NONE} as an argument type, however it is ok
465 to use @code{GTK_PARAM_NONE} for @var{return_val}. (This corresponds to
466 returning a @code{void}).
467
468 @code{gtk_signal_new} returns the integer identifier of the newly
469 created signal. Signal identifiers start numbering at 1 and increase
470 upwards. A value of -1 will be returned if an error occurs.
471
472 @strong{Note:} @code{gtk_signal_new} is only needed by widget writers. A
473 normal user of GTK will never needed to invoke this function.
474 @end deftypefun
475
476 @deftypefun gint gtk_signal_lookup (gchar *@var{name}, gint @var{object_type})
477 Returns the integer identifier for the signal referenced by @var{name}
478 and @var{object_type}. If @var{object_type} does not define the signal
479 @var{name}, then the signal is looked for in @var{object_type}'s parent
480 type recursively.
481 @end deftypefun
482
483 @deftypefun gint gtk_signal_emit (GtkObject *@var{object}, gint @var{signal_type}, @dots{})
484 Emit the signal specified by the integer identifier @var{signal_type}
485 from @var{object}. If an error occurs, @code{gtk_signal_emit} will
486 return @code{FALSE} and will return @code{TRUE} on success. The signal
487 definition determines the parameters passed in the variable argument
488 list (@code{@dots{}}). For example, if the signal is defined as:
489
490 @example
491   gint (* event) (GtkWidget *widget, GdkEvent *event);
492 @end example
493
494 Then a call to emit the ``event'' signal would look like:
495
496 @example
497   GdkEvent event;
498   gint return_val;
499   @dots{}
500   gtk_signal_emit (some_object,
501                    gtk_signal_lookup ("event",
502                      GTK_OBJECT_TYPE (some_object)),
503                    &event, &return_val);
504 @end example
505
506 Notice that the @code{widget} argument is implicit in that the first
507 argument to every signal is a type derived from @code{GtkObject}. The
508 @var{return_val} argument is actually a pointer to the return value type
509 since the signal mechanism needs to be able to place the return value in
510 an actual location. And lastly, the @code{gtk_signal_lookup} call is
511 normally avoided by using the @code{gtk_signal_emit_by_name} function
512 instead. @code{gtk_signal_emit} is normally used internally by widgets
513 which know the signal identifier (since they defined the signal) and can
514 therefore side-step the cost of calling @code{gtk_signal_lookup}.
515 @end deftypefun
516
517 @deftypefun gint gtk_signal_emit_by_name (GtkObject *@var{object}, gchar *@var{name}, @dots{})
518 Similar to @code{gtk_signal_emit} except that the signal is referenced
519 by @var{name} instead of by its integer identifier.
520 @end deftypefun
521
522 @deftypefun void gtk_signal_emit_stop (GtkObject *@var{object}, gint @var{signal_type})
523 Stop the emission of the signal @var{signal_type} on
524 @var{object}. @var{signal_type} is the integer identifier for the signal
525 and can be determined using the function
526 @code{gtk_signal_lookup}. Alternatively, the function
527 @code{gtk_signal_emit_stop_by_name} can be used to refer to the signal
528 by name. Attempting to stop the emission of a signal that isn't being
529 emitted does nothing.
530 @end deftypefun
531
532 @deftypefun void gtk_signal_emit_stop_by_name (GtkObject *@var{object}, gchar *@var{name})
533 Similar to @code{gtk_signal_emit_stop} except that the signal is
534 referenced by @var{name} instead of by its integer identifier.
535 @end deftypefun
536
537 @deftypefun gint gtk_signal_connect (GtkObject *@var{object}, gchar *@var{name}, GtkSignalFunc @var{func}, gpointer @var{func_data})
538 Connects a signal handling function to a signal emitting
539 object. @var{func} is connected to the signal @var{name} emitted by
540 @var{object}. The arguments and returns type of @var{func} should match
541 the arguments and return type of the signal @var{name}. However,
542 @var{func} may take the extra argument of @var{func_data}. Due to the C
543 calling convention it is ok to ignore the extra argument. (It is ok to
544 ignore all the arguments in fact).
545
546 @code{gtk_signal_connect} returns an integer identifier for the
547 connection which can be used to refer to it in the future. Specifically
548 it is useful for removing the connection and/or blocking it from being
549 used.
550 @end deftypefun
551
552 @deftypefun gint gtk_signal_connect_after (GtkObject *@var{object}, gchar *@var{name}, GtkSignalFunc @var{func}, gpointer @var{func_data})
553 Similar to @code{gtk_signal_connect} except the signal handler is
554 connected in the ``after'' slot. This allows a signal handler to be
555 guaranteed to run after other signal handlers connected to the same
556 signal on the same object and after the class function associated with
557 the signal.
558
559 Like @code{gtk_signal_connect}, @code{gtk_signal_connect_after} returns
560 an integer identifier which can be used to refer to the connection.
561 @end deftypefun
562
563 @deftypefun gint gtk_signal_connect_object (GtkObject *@var{object}, gchar *@var{name}, GtkSignalFunc @var{func}, GtkObject *@var{slot_object})
564 Connects @var{func} to the signal @var{name} emitted by
565 @var{object}. Similar to @code{gtk_signal_connect} with the difference
566 that @var{slot_object} is passed as the first parameter to @var{func}
567 instead of the signal emitting object. This can be useful for connecting
568 a signal emitted by one object to a signal in another object. A common
569 usage is to connect the ``destroy'' signal of dialog to the ``clicked''
570 signal emitted by a ``close'' button in the dialog. That is, the
571 ``clicked'' signal emitted by the button will caused the ``destroy''
572 signal to be emitted for the dialog. This is also the ``right'' way to
573 handle closing of a dialog since the ``destroy'' signal will be sent if
574 the dialog is deleted using a window manager function and this enables
575 the two methods of closing the window to be handled by the same
576 mechanism. Returns an integer identifier which can be used to refer to
577 the connection.
578 @end deftypefun
579
580 @deftypefun gint gtk_signal_connect_object_after (GtkObject *@var{object}, gchar *@var{name}, GtkSignalFunc @var{func}, GtkObject *@var{slot_object})
581 Similar to @code{gtk_signal_connect_object} except the signal handler is
582 connected in the ``after'' slot. This allows a signal handler to be
583 guaranteed to run after other signal handlers connected to the same
584 signal on the same object and after the class function associated with
585 the signal. Returns an integer identifier which can be used to refer to
586 the connection.
587 @end deftypefun
588
589 @deftypefun void gtk_signal_disconnect (GtkObject *@var{object}, gint @var{id})
590 Disconnects a signal handler from an object. The signal handler is
591 identified by the integer @var{id} which is returned by the
592 @code{gtk_signal_connect*} family of functions.
593 @end deftypefun
594
595 @deftypefun void gtk_signal_disconnect_by_data (GtkObject *@var{object}, gpointer @var{data})
596 Disconnects a signal handler from an object. The signal handler is
597 identified by the @var{data} argument specified as the @var{func_data}
598 argument to the @code{gtk_signal_connect*} family of functions. For the
599 @code{gtk_signal_connect_object*} functions, @var{data} refers to the
600 @var{slot_object}.
601
602 @strong{Note:} This will remove all signal handlers connected to
603 @var{object} which were connected using @var{data} as their
604 @var{func_data} argument. Multiple signal handlers may be disconnected
605 with this call.
606 @end deftypefun
607
608 @deftypefun void gtk_signal_handler_block (GtkObject *@var{object}, gint @var{id})
609 Blocks calling of a signal handler during signal emission. The signal
610 handler is identified by the integer @var{id} which is returned by the
611 @code{gtk_signal_connect*} family of functions. If the signal is already
612 blocked no change is made.
613 @end deftypefun
614
615 @deftypefun void gtk_signal_handler_block_by_data (GtkObject *@var{object}, gint @var{data})
616 Blocks calling of a signal handler during signal emission. The signal
617 handler is identified by the @var{data} argument specified as the
618 @var{func_data} argument to the @code{gtk_signal_connect*} family of
619 functions. For the @code{gtk_signal_connect_object*} functions,
620 @var{data} refers to the @var{slot_object}. If the signal is already
621 blocked no change is made.
622
623 @strong{Note:} This will block all signal handlers connected to
624 @var{object} which were connected using @var{data} as their
625 @var{func_data} argument. Multiple signal handlers may be blocked
626 with this call.
627 @end deftypefun
628
629 @deftypefun void gtk_signal_handler_unblock (GtkObject *@var{object}, gint @var{id})
630 Unblocks calling of a signal handler during signal emission. The signal
631 handler is identified by the integer @var{id} which is returned by the
632 @code{gtk_signal_connect*} family of functions. If the signal is already
633 unblocked no change is made.
634 @end deftypefun
635
636 @deftypefun void gtk_signal_handler_unblock_by_data (GtkObject *@var{object}, gint @var{data})
637 Unblocks calling of a signal handler during signal emission. The signal
638 handler is identified by the @var{data} argument specified as the
639 @var{func_data} argument to the @code{gtk_signal_connect*} family of
640 functions. For the @code{gtk_signal_connect_object*} functions,
641 @var{data} refers to the @var{slot_object}. If the signal is already
642 unblocked no change is made.
643
644 @strong{Note:} This will unblock all signal handlers connected to
645 @var{object} which were connected using @var{data} as their
646 @var{func_data} argument. Multiple signal handlers may be unblocked
647 with this call.
648 @end deftypefun
649
650 @deftypefun void gtk_signal_handlers_destroy (GtkObject *@var{object})
651 Destroy all of the signal handlers connected to @var{object}. There
652 should normally never be reason to call this function as it is called
653 automatically when @var{object} is destroyed.
654 @end deftypefun
655
656 @deftypefun void gtk_signal_default_marshaller (GtkObject *@var{object}, GtkSignalFunc @var{func}, gpointer @var{func_data}, GtkSignalParam *@var{params})
657 @code{gtk_signal_new} requires a callback in order to actually call a
658 signal handler for a particular signal. The vast majority of signals are
659 of the particular form:
660
661 @example
662   (* std_signal) (gpointer std_arg);
663 @end example
664
665 @code{gtk_signal_default_marshaller} is a signal marshaller which
666 marshals arguments for a signal of that form.
667 @end deftypefun
668
669
670 @node Widgets, Other Objects, Signals, Top
671 @comment node-name, next, previous, up
672 @chapter Widget Overview
673 @cindex Widgets
674
675
676 Widgets are the general term used to describe user interface objects. A
677 widget defines a class interface that all user interface objects conform
678 to. This interface allows a uniform method for dealing with operations
679 common to all objects such as hiding and showing, size requisition and
680 allocation and events.
681
682 The common interface that widgets must adhere to is described by the
683 GtkWidget and GtkWidgetClass structure. For the purposes of using GTK
684 these structures can be considered read-only and, for the most part,
685 opaque.
686
687 All widget creation routines in GTK return pointers to GtkWidget
688 structures. In reality, all widget creation routines create structures
689 that can be viewed as equivalent to the GtkWidget structure, but often
690 have contain additional information. @xref{Object Implementation}
691
692 The widgets available for use are implemented in a hierarchy. Several
693 widgets exist solely as common bases for more specific widgets. For
694 example, it is not possible to create a ruler widget itself, but the
695 ruler widget provides a base and functionality common to the horizontal
696 and vertical rulers.
697
698 The available widgets (in alphabetical order):
699
700 @menu
701 * GtkAlignment::                The alignment widget.
702 * GtkArrow::                    The arrow widget.
703 * GtkAspectFrame::              The aspect frame widget.
704 * GtkBin::                      The bin widget.
705 * GtkBox::                      The box widget.
706 * GtkButtonBox::                The button box widget.
707 * GtkButton::                   The button widget.
708 * GtkCheckButton::              The check button widget.
709 * GtkCheckMenuItem::            The check menu item widget.
710 * GtkCList::                    The compound list widget.
711 * GtkColorSelection::           The color selector widget.
712 * GtkComboBox::                 The combobox widget.
713 * GtkContainer::                The container widget.
714 * GtkCurve::                    The curve widget.
715 * GtkDialog::                   The dialog widget.
716 * GtkDrawingArea::              The drawing area widget.
717 * GtkEntry::                    The entry widget.
718 * GtkEventBox::                 The event box widget.
719 * GtkFileSelection::            The file selection dialog widget.
720 * GtkFixed::                    The fixed widget.
721 * GtkFrame::                    The frame widget.
722 * GtkGamma::                    The gamma widget.
723 * GtkHBox::                     The horizontal box widget.
724 * GtkHButtonBox::               The horizontal button box widget.
725 * GtkHPaned::                   The horizontal paned widget.
726 * GtkHRuler::                   The horizontal ruler widget.
727 * GtkHScale::                   The horizontal scale widget.
728 * GtkHScrollbar::               The horizontal scrollbar widget.
729 * GtkHSeparator::               The horizontal separator widget.
730 * GtkImage::                    The image widget.
731 * GtkInputDialog::              The input dialog widget.
732 * GtkItem::                     The item widget.
733 * GtkLabel::                    The label widget.
734 * GtkList::                     The list widget.
735 * GtkListItem::                 The list item widget.
736 * GtkMenu::                     The menu widget.
737 * GtkMenuBar::                  The menu bar widget.
738 * GtkMenuItem::                 The menu item widget.
739 * GtkMenuShell::                The menu shell widget.
740 * GtkMisc::                     The misc widget.
741 * GtkNotebook::                 The notebook widget.
742 * GtkOptionMenu::               The option menu widget.
743 * GtkPaned::                    The paned widget.
744 * GtkPixmap::                   The pixmap widget.
745 * GtkPreview::                  The preview widget.
746 * GtkProgressBar::              The progress bar widget.
747 * GtkRadioButton::              The radio button widget.
748 * GtkRadioMenuItem::            The radio menu item widget.
749 * GtkRange::                    The range widget.
750 * GtkRuler::                    The ruler widget.
751 * GtkScale::                    The scale widget.
752 * GtkScrollbar::                The scrollbar widget.
753 * GtkScrolledWindow::           The scrolled window widget.
754 * GtkSeparator::                The separator widget.
755 * GtkStatusbar::                The statusbar widget.
756 * GtkTable::                    The table widget.
757 * GtkText::                     The text widget.
758 * GtkToggleButton::             The toggle button widget.
759 * GtkToolbar::                  The tool bar widget.
760 * GtkTooltips::                 The tool tips widget.
761 * GtkTree::                     The tree widget.
762 * GtkTreeItem::                 The tree item widget.
763 * GtkVBox::                     The vertical box widget.
764 * GtkVButtonBox::               The vertical button box widget.
765 * GtkViewport::                 The viewport widget.
766 * GtkVPaned::                   The vertical paned widget.
767 * GtkVRuler::                   The vertical ruler widget.
768 * GtkVScale::                   The vertical scale widget.
769 * GtkVScrollbar::               The vertical scrollbar widget.
770 * GtkVSeparator::               The vertical separator widget.
771 * GtkWidget::                   The base widget type.
772 * GtkWindow::                   The window widget.
773 @end menu
774
775 @node GtkAlignment, GtkArrow, Widgets, Widgets
776 @comment node-name, next, previous, up
777 @section The alignment widget
778
779
780 @subsection Description
781
782 The alignment widget is a container (@pxref{GtkContainer}) derived from
783 the bin widget (@pxref{GtkBin}). Its entire purpose is to give the
784 programmer flexibility in how the child it manages is positioned when a
785 window is resized.
786
787 Normally, a widget is allocated at least as much size as it
788 requests. (@pxref{GtkContainer} for a discussion of geometry
789 management). When a widget is allocated more size than it requests there
790 is a question of how the widget should expand. By convention, most GTK
791 widgets expand to fill their allocated space. Sometimes this behavior is
792 not desired. The alignment widget allows the programmer to specify how a
793 widget should expand and position itself to fill the area it is
794 allocated.
795
796 @subsection Options
797
798 @defopt xscale
799 @defoptx yscale
800 The @var{xscale} and @var{yscale} options specify how to scale the child
801 widget. If the scale value is 0.0, the child widget is allocated exactly
802 the size it requested in that dimension. If the scale value is 1.0, the
803 child widget is allocated all of the space in a dimension. A scale value
804 of 1.0 for both x and y is equivalent to not using an alignment widget.
805 @end defopt
806
807 @defopt xalign
808 @defoptx yalign
809 The @var{xalign} and @var{yalign} options specify how to position the
810 child widget when it is not allocated all the space available to it
811 (because the @var{xscale} and/or @var{yscale} options are less than
812 1.0). If an alignment value is 0.0 the widget is positioned to the left
813 (or top) of its allocated space. An alignment value of 1.0 positions the
814 widget to the right (or bottom) of its allocated space. A common usage
815 is to specify @var{xalign} and @var{yalign} to be 0.5 which causes the
816 widget to be centered within its allocated area.
817 @end defopt
818
819 @subsection Signals
820
821 @subsection Functions
822
823 @deftypefun guint gtk_alignment_get_type (void)
824 Returns the @code{GtkAlignment} type identifier.
825 @end deftypefun
826
827 @deftypefun GtkWidget* gtk_alignment_new (gfloat @var{xalign}, gfloat @var{yalign}, gfloat @var{xscale}, gfloat @var{yscale})
828 Create a new @code{GtkAlignment} object and initialize it with the
829 values @var{xalign}, @var{yalign}, @var{xscale} and @var{yscale}. The
830 new widget is returned as a pointer to a @code{GtkWidget}
831 object. @code{NULL} is returned on failure.
832 @end deftypefun
833
834 @deftypefun void gtk_alignment_set (GtkAlignment *@var{alignment}, gfloat @var{xalign}, gfloat @var{yalign}, gfloat @var{xscale}, gfloat @var{yscale})
835 Set the @var{xalign}, @var{yalign}, @var{xscale} and @var{yscale} options
836 of an alignment widget. It is important to not set the fields of the
837 @code{GtkAlignment} structure directly (or, for that matter, any type
838 derived from @code{GtkObject}).
839 @end deftypefun
840
841 @gtkstdmacros{Alignment, ALIGNMENT}
842
843 @page
844 @node GtkArrow, GtkAspectFrame, GtkAlignment, Widgets
845 @comment node-name, next, previous, up
846 @section The arrow widget
847
848 @subsection Description
849
850 The arrow widget is derived from the misc widget (@pxref{GtkMisc}) and
851 is intended for use where a directional arrow (in one of the four
852 cardinal directions) is desired. As such, it has very limited
853 functionality and basically only draws itself in a particular direction
854 and with a particular shadow type. The arrow widget will expand to fill
855 all the space it is allocated.
856
857 @subsection Options
858
859 @defopt arrow_type
860 The @var{arrow_type} option specifies which direction the arrow will
861 point. It can be one of @code{GTK_ARROW_UP}, @code{GTK_ARROW_DOWN},
862 @code{GTK_ARROW_LEFT} or @code{GTK_ARROW_RIGHT}.
863 @end defopt
864
865 @defopt shadow_type
866 The @var{shadow_type} option specifies how to draw the shadow for the
867 arrow. Currently, only the @code{GTK_SHADOW_IN} and
868 @code{GTK_SHADOW_OUT} shadow types are supported for drawing
869 arrows. Other shadow types will cause nothing to be drawn.
870 @end defopt
871
872 @subsection Signals
873
874 @subsection Functions
875
876 @deftypefun guint gtk_arrow_get_type (void)
877 Returns the @code{GtkArrow} type identifier.
878 @end deftypefun
879
880 @deftypefun GtkWidget* gtk_arrow_new (GtkArrowType @var{arrow_type}, GtkShadowType @var{shadow_type})
881 Create a new @code{GtkArrow} object and initialize it with the values
882 @var{arrow_type} and @var{shadow_type}. The new widget is returned as a
883 pointer to a @code{GtkWidget} object. @code{NULL} is returned on
884 failure.
885 @end deftypefun
886
887 @deftypefun void gtk_arrow_set (GtkArrow *@var{arrow}, GtkArrowType @var{arrow_type}, GtkShadowType @var{shadow_type})
888 Set the @var{arrow_type} and @var{shadow_type} options of an arrow
889 widget. It is important to not set the fields of the @code{GtkArrow}
890 structure directly (or, for that matter, any type derived from
891 @code{GtkObject}).
892 @end deftypefun
893
894 @gtkstdmacros{Arrow, ARROW}
895
896
897 @page
898 @node GtkAspectFrame, GtkBin, GtkArrow, Widgets
899 @comment node-name, next, previous, upa
900 @section The aspect frame widget
901
902 @subsection Description
903
904 @subsection Options
905
906 @defopt label
907 @end defopt
908
909 @defopt xalign
910 @end defopt
911
912 @defopt yalign
913 @end defopt
914
915 @defopt ratio
916 @end defopt
917
918 @defopt obey_child
919 @end defopt
920
921 @subsection Signals
922
923 @subsection Functions
924
925 @deftypefun guint gtk_aspect_frame_get_type (void)
926 Returns the @code{GtkAspectFrame} type identifier.
927 @end deftypefun
928
929 @deftypefun GtkWidget* gtk_aspect_frame_new (gchar *@var{label}, gfloat @var{xalign}, gfloat @var{yalign}, gfloat @var{ratio}, gint @var{obey_child})
930 Create a new @code{GtkAspectFrame} object and initialize it with the values 
931 @var{label}, @var{xalign}, @var{yalign}, @var{ratio} and @var{obey_child}.
932 The new widget is returned as a pointer to a @code{GtkWidget} object. 
933 @code{NULL} is returned on failure.
934 @end deftypefun
935
936 @deftypefun void gtk_aspect_frame_set (GtkAspectFrame *@var{aspect_frame}, gfloat @var{xalign}, gfloat @var{yalign}, gfloat @var{ratio}, gint @var{obey_child})
937 @end deftypefun
938
939
940 @gtkstdmacros{AspectFrame, ASPECT_FRAME}
941
942 @page
943 @node GtkBin, GtkBox, GtkAspectFrame, Widgets
944 @comment node-name, next, previous, up
945 @section The bin widget
946
947 @subsection Description
948
949 The bin widget is a container (@pxref{GtkContainer}) derived from the
950 container widget. It is an abstract base class. That is, it is not
951 possible to create an actual bin widget. It exists only to provide a
952 base of functionality for other widgets. Specifically, the bin widget
953 provides a base for several other widgets that contain only a single
954 child. These widgets include alignments (@pxref{GtkAlignment}), frames
955 (@pxref{GtkFrame}), items (@pxref{GtkItem}), viewports
956 (@pxref{GtkViewport}) and windows (@pxref{GtkWindow})
957
958 @subsection Options
959
960 @subsection Signals
961
962 @subsection Functions
963
964 @deftypefun guint gtk_bin_get_type (void)
965 Returns the @code{GtkBin} type identifier.
966 @end deftypefun
967
968 @gtkstdmacros{Bin, BIN}
969
970
971 @page
972 @node GtkBox, GtkButtonBox, GtkBin, Widgets
973 @comment node-name, next, previous, up
974 @section The box widget
975
976
977 @subsection Description
978
979 The box widget is a container (@pxref{GtkContainer}) derived from the
980 container widget. It is an abstract base class used by the horizontal
981 box (@pxref{GtkHBox}), the vertical box (@pxref{GtkVBox}) and the 
982 (@pxref{GtkButtonBox}) widgets to provide a base of common functionality.
983
984 A box provides an abstraction for organizing the position and size of
985 widgets. Widgets in a box are layed out horizontally or vertically. By
986 using a box widget appropriately, a programmer can control how widgets
987 are positioned and how they will be allocated space when a window gets
988 resized.
989
990 The key attribute of boxes is that they position their children in a
991 single row (horizontal boxes) or column (vertical boxes). In the case of
992 horizontal boxes, all children are stretched vertically. The vertical
993 size of the box is determined by the largest vertical requisition of all
994 of its children. Similarly, a vertical box streches all of its children
995 horizontally. The horizontal size (of the vertical box) is determined by
996 the largest horizontal requisition of all of its children. An alignment
997 widget (@pxref{GtkAlignment}) can be used to control child allocation
998 more precisely on a per child basis.
999
1000 The second attribute of boxes is how they expand children. In the case
1001 of a horizontal box, the main control is over how children are expanded
1002 horizontally to fill the allocated area. (The rest of this discussion
1003 will focus on horizontal boxes but it applies to vertical boxes as
1004 well).
1005
1006 There are two flags which can be set controlling how a widget is
1007 expanded horizontally in a horizontal box. These are the @code{expand}
1008 and @code{fill}. There operation is fairly simple. If @code{expand} is
1009 set, the childs potentially allocated area will expand to fill available
1010 space. If @code{fill} is set, the childs actual allocated area will be
1011 its potentially allocated area. There is a difference between
1012 the potentially area (which is the area the box widget sets aside for
1013 the child) and the actual allocated area (which is the area the box
1014 widget actual allocates for the widget via
1015 @code{gtk_widget_size_allocate}).
1016
1017 The allocation of space to children occurs as follows (for horizontal
1018 boxes):
1019 @enumerate
1020 @item
1021 All children are allocated at least their requested size horizontally
1022 and the maximum requested child size vertically.
1023
1024 @item
1025 Any child with the @code{expand} flag set is allocated @code{extra_width
1026 / nexpand_children} extra pixels horizontally. If the @code{homogeneous}
1027 flag was set, all children are considered to have the @code{expand} flag
1028 set. That is, all children will be allocated the same area.The
1029 horizontal box is a fair widget and, as such, divides up any extra
1030 allocated space evenly among the ``expand'' children. (Those children
1031 which have the @code{expand} flag set). The exception occurs when
1032 @code{extra_width / nexpand_children} does not divide cleanly. The extra
1033 space is given to the last widget.
1034
1035 @item
1036 @code{spacing} number of pixels separate each child. Note: The
1037 separation is between the potentially allocated area for each child and
1038 not the actual allocated area. The @code{padding} value associated with
1039 each child causes that many pixels to be left empty to each side of the
1040 child.
1041
1042 @item
1043 If a child has the @code{fill} flag set it is allocated its potentially
1044 allocated area. If it does not, it is allocated its requested size
1045 horizontally and centered within its potentially allocated area. Its
1046 vertical allocation is still the maximum requested size of any child.
1047
1048 @item
1049 Children placed at the start of the box are placed in order of addition
1050 to the box from left to right in the boxes allocated area.. Children
1051 placed at the end of the box are placed in order of addition from right
1052 to left in the boxes allocated area.
1053 @end enumerate
1054
1055 @xref{GtkHBox}, and @ref{GtkVBox}, for code examples of using horizontal
1056 and vertical boxes.
1057
1058 @subsection Options
1059
1060 @defopt expand
1061 @end defopt
1062
1063 @defopt fill
1064 @end defopt
1065
1066 @defopt padding
1067 @end defopt
1068
1069 @defopt expand
1070 @end defopt
1071
1072 @c FIXME: options for GtkBox
1073
1074 @subsection Signals
1075
1076 @subsection Functions
1077
1078 @deftypefun guint gtk_box_get_type (void)
1079 Returns the @code{GtkBox} type identifier.
1080 @end deftypefun
1081
1082 @deftypefun void gtk_box_pack_start (GtkBox *@var{box}, GtkWidget *@var{child}, gint @var{expand}, gint @var{fill}, gint @var{padding})
1083 Add @var{child} to the front of @var{box}. The flags @var{expand} and
1084 @var{fill} and the padding value of @var{padding} are associated with
1085 @var{child}.
1086 @end deftypefun
1087
1088 @deftypefun void gtk_box_pack_end (GtkBox *@var{box}, GtkWidget *@var{child}, gint @var{expand}, gint @var{fill}, gint @var{padding})
1089 Add @var{child} to the end of @var{box}. The flags @var{expand} and
1090 @var{fill} and the padding value of @var{padding} are associated with
1091 @var{child}.
1092 @end deftypefun
1093
1094 @deftypefun void gtk_box_pack_start_defaults (GtkBox *@var{box}, GtkWidget *@var{widget})
1095 A convenience function which is equivalent to the following:
1096
1097 @example
1098   gtk_box_pack_start (@var{box}, @var{widget}, TRUE, TRUE, 0);
1099 @end example
1100 @end deftypefun
1101
1102 @deftypefun void gtk_box_pack_end_defaults (GtkBox *@var{box}, GtkWidget *@var{widget})
1103 A convenience function which is equivalent to the following:
1104
1105 @example
1106   gtk_box_pack_start (@var{box}, @var{widget}, TRUE, TRUE, 0);
1107 @end example
1108 @end deftypefun
1109
1110 @gtkstdmacros{Box, BOX}
1111
1112
1113 @page
1114 @node GtkButtonBox, GtkButton, GtkBox, Widgets
1115 @comment node-name, next, previous, up
1116 @section The button box widget
1117
1118 @subsection Description
1119 The button box widget is a container (@pxref{GtkContainer}) derived from the
1120 (@pxref{GtkBox}) widget. It is an abstract base class used by the horizontal
1121 button box (@pxref{GtkHButtonBox}) and the vertical button box 
1122 (@pxref{GtkVButtonBox}) widgets to provide a base of common functionality.
1123
1124 @subsection Options
1125 @defopt layout_style
1126 @itemize @bullet
1127 @item
1128 The layout style @code{GTK_BUTTONBOX_SPREAD} will spread the buttons out
1129 evenly within the button box. When the parent window is resized they will
1130 re-adjust to the new window dimensions. The @code{gtk_button_box_set_spacing}
1131 function will set the minimum space that the buttons will leave between
1132 themselves.
1133
1134 @item
1135 @code{GTK_BUTTONBOX_EDGE}
1136
1137 @item
1138 The layout style @code{GTK_BUTTONBOX_START} will place the buttons at the
1139 start of the button box, taking into account the spacing as set by the
1140 @code{gtk_button_box_set_spacing} function. The buttons will not move
1141 when the parent window is re-sized.
1142
1143 @item
1144 The layout style @code{GTK_BUTTONBOX_END} will place the buttons at the
1145 end of the button box, taking into account the spacing as set by the
1146 @code{gtk_button_box_set_spacing} function. Again like the
1147 @code{GTK_BUTTONBOX_START} layout style the buttons will not move when
1148 the parent window is re-sized.
1149 @end itemize
1150 @end defopt
1151
1152 @defopt width
1153 @end defopt
1154
1155 @subsection Signals
1156
1157 @subsection Functions
1158
1159 @deftypefun guint gtk_button_box_get_type (void)
1160 Returns the @code{GtkButtonBox} type identifier.
1161 @end deftypefun
1162
1163 @deftypefun void gtk_button_box_set_child_size_default (gint @var{width}, gint@var{height})
1164 @end deftypefun
1165
1166 @deftypefun void gtk_button_box_set_child_ipadding_default (gint @var{ipad_x}, gint @var{ipad_y})
1167 @end deftypefun
1168
1169 @deftypefun void gtk_button_box_get_child_size_default (gint *@var{width}, gint *@var{height})
1170 @end deftypefun
1171
1172 @deftypefun void gtk_button_box_get_child_ipadding_default (gint *@var{ipad_x}, gint *@var{ipad_y})
1173 @end deftypefun
1174
1175 @deftypefun void gtk_button_box_set_child_size (GtkButtonBox *@var{widget}, gint @var{width}, gint @var{height})
1176 @end deftypefun
1177
1178 @deftypefun void gtk_button_box_set_child_ipadding (GtkButtonBox *@var{widget}, gint @var{ipad_x}, gint @var{ipad_y})
1179 @end deftypefun
1180
1181 @deftypefun void gtk_button_box_set_layout (GtkButtonBox *@var{widget}, gint @var{layout_style})
1182 This will set the layout style of the buttons within this box. Currently it can
1183 be set to one of @code{GTK_BUTTONBOX_SPREAD}, @code{GTK_BUTTONBOX_EDGE}, 
1184 @code{GTK_BUTTONBOX_START} or @code{GTK_BUTTONBOX_END}.
1185
1186 @example
1187     gtk_button_box_set_layout (GTK_BUTTON_BOX (box), 
1188                                GTK_BUTTONBOX_SPREAD);
1189 @end example
1190
1191 @end deftypefun
1192
1193 @deftypefun gint gtk_button_box_get_spacing (GtkButtonBox *@var{widget})
1194 Get the per widget value for spacing within the button box. This value is
1195 the amount of space that will be between the indvidual buttons contained by
1196 this box.
1197 @end deftypefun
1198
1199 @deftypefun void gtk_button_box_get_child_size (GtkButtonBox *@var{wiget}, gint *@var{width}, gint *@var{height})
1200 @end deftypefun
1201
1202 @deftypefun void gtk_button_box_get_child_ipadding (GtkButtonBox *@var{widget}, gint *@var{ipad_x}, gint *@var{ipad_y})
1203 Get the per widget value for the padding inside the buttons. This value 
1204 controls how large the buttons will be within the box.
1205 @end deftypefun
1206
1207 @deftypefun gint gtk_button_box_get_layout (GtkButtonBox *@var{widget})
1208 Get the @var{layout_style} for the @code{GtkButtonBox} object passed to this
1209 function in the @var{widget} variable.
1210
1211 @example
1212    layout = gtk_button_box_get_layout(GTK_BUTTON_BOX (box));
1213 @end example
1214
1215 @end deftypefun
1216
1217 @gtkstdmacros{ButtonBox, BUTTON_BOX}
1218
1219 @page
1220 @node GtkButton, GtkCheckButton, GtkButtonBox, Widgets
1221 @comment node-name, next, previous, up
1222 @section The button widget
1223
1224
1225 @subsection Description
1226
1227 @subsection Signals
1228
1229 @deftypefn Signal void GtkButton::pressed (GtkButton *@var{button})
1230 @end deftypefn
1231
1232 @deftypefn Signal void GtkButton::released (GtkButton *@var{button})
1233 @end deftypefn
1234
1235 @deftypefn Signal void GtkButton::clicked (GtkButton *@var{button})
1236 @end deftypefn
1237
1238 @deftypefn Signal void GtkButton::enter (GtkButton *@var{button})
1239 @end deftypefn
1240
1241 @deftypefn Signal void GtkButton::leave (GtkButton *@var{button})
1242 @end deftypefn
1243
1244 @subsection Functions
1245
1246 @deftypefun guint gtk_button_get_type (void)
1247 Returns the @code{GtkButton} type identifier.
1248 @end deftypefun
1249
1250 @deftypefun GtkWidget* gtk_button_new (void)
1251 Create a new @code{GtkButton} object. The new widget is returned as a 
1252 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
1253 @end deftypefun
1254
1255 @deftypefun GtkWidget* gtk_button_new_with_label (gchar *@var{label})
1256 Create a new @code{GtkButton} object and set the text that is 
1257 on the button to @var{label}. The new widget is returned as a 
1258 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
1259 @end deftypefun
1260
1261 @deftypefun void gtk_button_pressed (GtkButton *@var{button})
1262 @end deftypefun
1263
1264 @deftypefun void gtk_button_released (GtkButton *@var{button})
1265 @end deftypefun
1266
1267 @deftypefun void gtk_button_clicked (GtkButton *@var{button})
1268 @end deftypefun
1269
1270 @deftypefun void gtk_button_enter (GtkButton *@var{button})
1271 @end deftypefun
1272
1273 @deftypefun void gtk_button_leave (GtkButton *@var{button})
1274 @end deftypefun
1275
1276 @gtkstdmacros{Button, BUTTON}
1277
1278
1279 @page
1280 @node GtkCheckButton, GtkCheckMenuItem, GtkButton, Widgets
1281 @comment node-name, next, previous, up
1282 @section The check button widget
1283
1284
1285
1286 @subsection Description
1287
1288 @subsection Options
1289
1290 @subsection Signals
1291
1292 @subsection Functions
1293
1294 @deftypefun guint gtk_check_button_get_type (void)
1295 Returns the @code{GtkCheckButton} type identifier.
1296 @end deftypefun
1297
1298 @deftypefun GtkWidget* gtk_check_button_new (void)
1299 Create a new @code{GtkCheckButton} object and initialize it with the 
1300 default values in the library. The new widget is returned as a pointer
1301 to a @code{GtkWidget} object. A @code{NULL} is returned on failure.
1302 @end deftypefun
1303
1304 @deftypefun GtkWidget* gtk_check_button_new_with_label (gchar *@var{label})
1305 Create a new @code{GtkCheckButton} object and initialize it with the 
1306 values @var{label}. The new widget is returned as a pointer to a
1307 @code{GtkWidget} object. @code{NULL} is returned on any failure.
1308 @end deftypefun
1309
1310 @deftypefun GtkCheckButton* GTK_CHECK_BUTTON (gpointer @var{obj})
1311 @end deftypefun
1312
1313 @deftypefun GtkCheckButtonClass* GTK_CHECK_BUTTON_CLASS (gpointer @var{class})
1314 @end deftypefun
1315
1316 @deftypefun gint GTK_IS_CHECK_BUTTON (gpointer @var{obj})
1317 @end deftypefun
1318
1319 @gtkstdmacros{CheckButton, CHECK_BUTTON}
1320
1321 @page
1322 @node GtkCheckMenuItem, GtkCList, GtkCheckButton, Widgets,
1323 @comment node-name, next, previous, up
1324 @section The check menu item widget
1325
1326 @subsection Description
1327
1328 @subsection Options
1329
1330 @defopt label
1331 @end defopt
1332
1333 @defopt state
1334 @end defopt
1335
1336 @subsection Signals
1337
1338 @deftypefn Signal void GtkCheckMenuItem::toggled (GtkCheckMenuItem *@var{check_menu_item})
1339 @end deftypefn
1340
1341 @subsection Functions
1342
1343 @deftypefun guint gtk_check_menu_item_get_type (void)
1344 Returns the @code{GtkCheckMenuItem} type identifier.
1345 @end deftypefun
1346
1347 @deftypefun GtkWidget* gtk_check_menu_item_new (void)
1348 Create a new @code{GtkCheckMenuItem} object. The new widget is returned as a
1349 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
1350 @end deftypefun
1351
1352 @deftypefun GtkWidget* gtk_check_menu_item_new_with_label (gchar *@var{label})
1353 Create a new @code{GtkCheckMenuItem} object and initalize it with the values
1354 @var{label}. The new widget is returned as a pointer to a @code{GtkWidget}
1355 object. @code{NULL} is returned on failure.
1356 @end deftypefun
1357
1358 @deftypefun void gtk_check_menu_item_set_state (GtkCheckMenuItem *@var{check_menu_item}, gint @var{state})
1359 @end deftypefun
1360
1361 @deftypefun void gtk_check_menu_item_toggled (GtkCheckMenuItem *@var{check_menu_item})
1362 @end deftypefun
1363
1364 @gtkstdmacros{CheckMenuItem, CHECK_MENU_ITEM}
1365
1366 @page 
1367 @node GtkCList, GtkColorSelection, GtkCheckMenuItem, Widgets
1368 @comment node-name, next, previous, up
1369 @section The compound list widget
1370
1371 @subsection Description
1372
1373 @subsection Options
1374
1375 @subsection Signals
1376
1377 @subsection Functions
1378
1379 @deftypefun guint gtk_clist_get_type (void)
1380 Returns the @code{GtkCList} type identifer.
1381 @end deftypefun
1382
1383 @deftypefun GtkWidget* gtk_clist_new (int @var{columns})
1384 Create a new @code{GtkCList} initilizing it with the value @var{columns}. 
1385 The new widget is returned as a pointer to a @code{GtkWidget} object.
1386 @code{NULL} is returned on failure.
1387 @end deftypefun
1388
1389 @deftypefun GtkWidget* gtk_clist_new_with_titles (int @var{columns}, gchar *@var{titles[]})
1390 @end deftypefun
1391
1392 @deftypefun void gtk_clist_set_border (GtkCList *@var{clist}, GtkShadowType @var{border})
1393 Set the border style of the @var{clist} to the shadow type @var{border}.
1394 @end deftypefun
1395
1396 @deftypefun void gtk_clist_set_selection_mode (GtkCList *@var{clist} GtkSelectionMode @var{mode})
1397 Set the selection mode on the @var{clist} to the @var{mode} selection mode.
1398 @end deftypefun
1399
1400 @deftypefun void gtk_clist_set_policy (GtkCList *@var{clist}, GtkPolicyType @var{vscrollbar_policy}, GtkPolicyType @var{hscrollbar_policy})
1401 Set the policy on the scrollbars on the @var{clist} to @var{vscrollbar_policy} and @var{hscrollbar_policy}.
1402 @end deftypefun
1403
1404 @deftypefun void gtk_clist_freeze (GtkCList *@var{clist})
1405 Stop all visual updates of the @var{clist}. Useful for when making a large
1406 number of changes to a @code{GtkCList}.
1407 @end deftypefun
1408
1409 @deftypefun void gtk_clist_thaw (GtkCList *@var{clist})
1410 Allow all visual updates of the @var{clist} to resume. 
1411 @end deftypefun
1412
1413 @deftypefun void gtk_clist_column_titles_show (GtkCList *@var{clist})
1414 Show the column title buttons on the @var{clist}.
1415 @end deftypefun
1416
1417 @deftypefun void gtk_clist_column_titles_hide (GtkCList *@var{clist})
1418 Hide the column title buttons on the @var{clist}.
1419 @end deftypefun
1420
1421 @deftypefun void gtk_clist_set_column_title (GtkCList *@var{clist}, gint @var{column}, gchar *@var{title})
1422 Set the title in column @var{column} of the @var{clist} button to @var{title}.
1423 @end deftypefun
1424
1425 @deftypefun void gtk_clist_set_column_widget (GtkCList *@var{clist}, gint @var{column}, GtkWidget *@var{widget})
1426 Set the @var{widget} instead of the title button for the column @var{column} 
1427 in the @var{clist}.
1428 @end deftypefun
1429
1430 @deftypefun void gtk_clist_set_column_justification (GtkCList *@var{clist}, gint @var{column}, GtkJustification @var{justification})
1431 Set the @var{column}'s justification, in the @var{clist} to @var{justification}.
1432 @end deftypefun
1433
1434 @deftypefun void gtk_clist_set_column_width (GtkCList *@var{clist}, gint @var{column}, gint @var{width})
1435 Set the pixel width of column @var{column} in the @code{GtkCList} @var{clist}
1436 to @var{width}. This function is a necessary steo in creating a 
1437 @code{GtkCList} because otherwise the column width is chosen from the width
1438 of the column title, which is almost never correct.
1439 @end deftypefun
1440
1441 @deftypefun void gtk_clist_set_row_height (GtkCList *@var{clist}, gint @var{height})
1442 Change the height of the rows in the @var{clist} to @var{height}. The default
1443 is the height of the current font.
1444 @end deftypefun
1445
1446 @deftypefun void gtk_clist_moveto (GtkCList *@var{clist}, gint @var{row}, gint@var{column}, gfloat @var{row_align}, gfloat @var{col_align})
1447 Scroll the viewing area of the @code{GtkClist} in @var{clist} to @var{column}
1448 and @var{row}. The @var{row_align} and @var{col_align} are between zero and
1449 one, representing the location the row should appear on screen. Setting 
1450 @var{row_align} or the @var{col_align} to 0.0 will be the top or left of the
1451 viewing area. Setting the @var{row_align} or @var{col_align} to 1.0 will
1452 be the bottom or right of the viewing area. If the @var{row} or @var{column}
1453 is -1 then there is no change.
1454 @end deftypefun
1455
1456 @deftypefun void gtk_clist_set_text (GtkCList *@var{clist}, gint @var{row}, gint @var{column}, gchar *@var{text})
1457 Set a given cell's text, located by the @var{row} and @var{column}, to 
1458 @var{text} replacing its current contents.
1459 @end deftypefun
1460
1461 @deftypefun void gtk_clist_set_pixmap (GtkCList *@var{clist}, gint @var{row}, gint @var{column}, GdkPixmap *@var{pixmap}, GdkBitmap *@var{mask})
1462 Set a given cell's text, located by the @var{column} and @var{row} arguments,
1463 to the pixmap described by the @var{pixmap} argument using the @var{mask} as 
1464 its mask. The current contents of the cell will be replaced.
1465 @end deftypefun
1466
1467 @deftypefun void gtk_clist_setpixtext (GtkCList *@var{clist}, gint @var{row}, gint @var{column}, gchar *@var{text}, guint8 @var{spacing}, GdkPixmap *@var{pixmap}, GdkBitmap *@var{mask})
1468 Set a given cell's text and pixmap, located by the @var{row} and @var{column}
1469 arguments, to the text and pixmap described by the @var{pixmap} and @var{text}
1470 arguments. The @var{mask} will be used for the pixmap mask and the 
1471 @var{spacing} argument specifies the spacing between the two.
1472 @end deftypefun
1473
1474 @deftypefun void gtk_clist_set_foreground (GtkCList *@var{clist}, gint @var{row}, GdkColor *@var{color})
1475 Set the foreground color of row @var{row} to @var{color} in the 
1476 @code{GtkCList} @var{clist}. The @var{color} must
1477 already be allocated.
1478 @end deftypefun
1479
1480 @deftypefun void gtk_clist_set_background (GtkCList *@var{clist}, gint @var{row}, GdkColor *@var{color})
1481 Set the background color of row @var{row} to @var{color} in the 
1482 @code{GtkCList} pointed to by @var{clist}. The color must be previously
1483 allocated.
1484 @end deftypefun
1485
1486 @deftypefun void gtk_clist_set_shift (GtkCList *@var{clist}, gint @var{row}, gint @var{column}, gint @var{vertical}, gint @var{horizontal})
1487 Set the horizontal and vertical shift for drawing the contents of the cell
1488 located at @var{row} and @var{column}. The @var{vertical} and @var{horizontal}
1489 arguments can be positive or negitive. 
1490 @end deftypefun
1491
1492 @deftypefun gint gtk_clist_append (GtkCList *@var{clist}, gchar *@var{text[]})
1493 Append the given text, in the @var{text[]} argument,  to the @code{GtkCList} 
1494 pointed to by the @var{clist}. The return value is the index of the row that
1495 was just added.
1496 @end deftypefun
1497
1498 @deftypefun void gtk_clist_insert (GtkCList *@var{clist}, gint @var{row}, gchar *@var{text[]})
1499 Insert a row into the @code{GtkCList} pointed to by @var{clist} at row 
1500 @var{row} with the text in @var{text[]}.
1501 @end deftypefun
1502
1503 @deftypefun void gtk_clist_remove (GtkCList *@var{clist}, gint @var{row})
1504 Remove row index @var{row} from the @var{clist}.
1505 @end deftypefun
1506
1507 @deftypefun void gtk_clist_set_row_data (GtkCList *@var{clist}, gint @var{row}, gpointer @var{data})
1508 Will set an arbitrary data pointer, @var{data}, for row @var{row} in the
1509 @code{GtkCList} pointed to by @var{clist}.
1510 @end deftypefun
1511
1512 @deftypefun gpointer gtk_clist_get_row_data (GtkCList *@var{clist}, gint @var{row})
1513 Return the data that was set for row @var{row} from the @code{GtkCList} pointed
1514 to by @var{clist}. @code{NULL} is returned if no data was set.
1515 @end deftypefun
1516
1517 @deftypefun void gtk_clist_select_row (GtkCList *@var{clist}, gint @var{row}, gint @var{column})
1518 Force selection of a row, located by @var{row} and @var{column}, in the 
1519 @code{GtkCList} pointed to by @var{clist}.
1520 @end deftypefun
1521
1522 @deftypefun void gtk_clist_unselect_row (GtkCList *@var{clist}, gint @var{row}, gint @var{column})
1523 Force the unselection of a row, located by @var{row} and @var{column}, in the
1524 @code{GtkCList} pointed to by @var{clist}.
1525 @end deftypefun
1526
1527 @deftypefun void gtk_clist_clear (GtkCList *@var{clist})
1528 Clear the entire contents of the @code{GtkCList} pointed to by @var{clist}.
1529 This is much faster then removing each item seperatly with 
1530 @code{gtk_clist_remove}.
1531 @end deftypefun
1532
1533 @gtkstdmacros{CList, CLIST}
1534
1535 @page
1536 @node GtkColorSelection, GtkComboBox, GtkCList, Widgets
1537 @comment node-name, next, previous, up
1538 @section The color selector widget
1539
1540 @subsection Description
1541
1542 @subsection Options
1543 @defopt policy
1544 @itemize @bullet
1545 @item
1546 GTK_UPDATE_CONTINUOUS
1547 @item
1548 GTK_UPDATE_DISCONTINOUS
1549 @item
1550 GTK_UPDATE_DELAYED
1551 @end itemize
1552 @end defopt
1553
1554 @defopt color
1555 @end defopt
1556
1557 @defopt use_opacity
1558 @end defopt
1559
1560 @defopt title
1561 @end defopt
1562
1563 @subsection Signals
1564
1565 @subsection Functions
1566
1567 @deftypefun guint gtk_color_selection_get_type (void)
1568 Returns the @code{GtkColorSelection} type identifier.
1569 @end deftypefun
1570
1571 @deftypefun GtkWidget* gtk_color_selection_new (void)
1572 Create a new @code{GtkColorSelection} object. The new object is returned as a
1573 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
1574 @end deftypefun
1575
1576 @deftypefun void gtk_color_selection_set_update_policy (GtkColorSelection *@var{colorsel}, GtkUpdateType @var{policy})
1577 @end deftypefun
1578
1579 @deftypefun void gtk_color_selection_set_color (GtkColorSelection *@var{colorsel}, gdouble *@var{color})
1580 @end deftypefun
1581
1582 @deftypefun void gtk_color_selection_get_color (GtkColorSelection *@var{colorsel}, gdouble *@var{color})
1583 @end deftypefun
1584
1585 @deftypefun void gtk_color_selection_set_opacity (GtkColorSelection *@var{colorsel}, gint @var{use_opacity})
1586 @end deftypefun
1587
1588 @deftypefun guint gtk_color_selection_dialog_get_type (void)
1589 @end deftypefun
1590
1591 @deftypefun GtkWidget* gtk_color_selection_dialog_new (gchar *@var{title})
1592 @end deftypefun
1593
1594 @gtkstdmacros{ColorSelection, COLOR_SELECTION}
1595
1596 @page
1597 @node GtkComboBox, GtkContainer, GtkColorSelection, Widgets
1598 @comment node-name, next, previous, up
1599 @section The combobox widget
1600
1601 @subsection Description
1602
1603 @subsection Options
1604
1605 @subsection Signals
1606
1607 @subsection Functions
1608
1609 @deftypefun guint gtk_combo_box_get_type (void)
1610 Returns the @code{GtkComboBox} type identifier.
1611 @end deftypefun
1612
1613 @deftypefun GtkWidget* gtk_combo_box_new (GList *@var{popdown_strings})
1614 @end deftypefun
1615
1616 @deftypefun GtkWidget* gtk_combo_box_new_with_max_length (GList *@var{popdown_strings}, guint16 @var{max})
1617 @end deftypefun
1618
1619 @deftypefun void gtk_combo_box_set_popdown_strings(GtkComboBox *@var{combobox}, GList *@var{popdown_strings})
1620 @end deftypefun
1621
1622 @gtkstdmacros{ComboBox, COMBO_BOX}
1623
1624 @page
1625 @node GtkContainer, GtkCurve, GtkComboBox, Widgets
1626 @comment node-name, next, previous, up
1627 @section The container widget
1628
1629 @subsection Description
1630
1631 @subsection Options
1632
1633 @defopt border_width
1634 @end defopt
1635
1636 @subsection Signals
1637
1638 @deftypefn Signal void GtkContainer::add (GtkContainer *@var{container}, GtkWidget *@var{widget})
1639 @end deftypefn
1640
1641 @deftypefn Signal void GtkContainer::remove (GtkContainer *@var{container}, GtkWidget *@var{widget})
1642 @end deftypefn
1643
1644 @deftypefn Signal void GtkContainer::need_resize (GtkContainer *@var{container}, GtkWidget *@var{widget})
1645 @end deftypefn
1646
1647 @deftypefn Signal void GtkContainer::foreach (GtkContainer *@var{container}, GtkCallback @var{callback}, gpointer @var{callback_data})
1648 @end deftypefn
1649
1650 @deftypefn Signal gint GtkContainer::focus (GtkContainer *@var{container}, GtkDirectionType @var{direction})
1651 @end deftypefn
1652
1653 @subsection Functions
1654
1655 @deftypefun guint gtk_container_get_type (void)
1656 Returns the @code{GtkContainer} type identifier.
1657 @end deftypefun
1658
1659 @deftypefun void gtk_container_border_width (GtkContainer *@var{container}, gint @var{border_width})
1660 @end deftypefun
1661
1662 @deftypefun void gtk_container_add (GtkContainer *@var{container}, GtkWidget *@var{widget})
1663 Add @var{widget} to the @var{container}.
1664 @end deftypefun
1665
1666 @deftypefun void gtk_container_remove (GtkContainer *@var{container}, GtkWidget *@var{widget})
1667 Remove @var{widget} from @var{container}.
1668 @end deftypefun
1669
1670 @deftypefun void gtk_container_disable_resize (GtkContainer *@var{container})
1671 @end deftypefun
1672
1673 @deftypefun void gtk_container_enable_resize (GtkContainer *@var{container})
1674 @end deftypefun
1675
1676 @deftypefun void gtk_container_block_resize (GtkContainer *@var{container})
1677 @end deftypefun
1678
1679 @deftypefun void gtk_container_unblock_resize (GtkContainer *@var{container})
1680 @end deftypefun
1681
1682 @deftypefun gint gtk_container_need_resize (GtkContainer *@var{container}, GtkWidget *@var{widget})
1683 @end deftypefun
1684
1685 @deftypefun void gtk_container_check_resize (GtkContainer *@var{container}, GtkWidget *@var{widget})
1686 @end deftypefun
1687
1688 @deftypefun void gtk_container_foreach (GtkContainer *@var{container}, GtkCallback @var{callback}, gpointer @var{callback_data})
1689 @end deftypefun
1690
1691 @deftypefun void gtk_container_focus (GtkContainer *@var{container}, GtkDirectionType @var{direction})
1692 @end deftypefun
1693
1694 @deftypefun GList* gtk_container_children (GtkContainer @var{container})
1695 @end deftypefun
1696
1697 @gtkstdmacros{Container, CONTAINER}
1698
1699 @page
1700 @node GtkCurve, GtkDialog, GtkContainer, Widgets
1701 @comment node-name, next, previous, up
1702 @section The curve widget
1703
1704 @subsection Description
1705
1706 @subsection Options
1707
1708 @defopt type
1709 @itemize @bullet
1710 @item GTK_CURVE_TYPE_LINEAR
1711 @item GTK_CURVE_TYPE_SPLINE
1712 @item GTK_CURVE_TYPE_FREE
1713 @end itemize
1714 @end defopt
1715
1716 @subsection Signals
1717
1718 @subsection Functions
1719
1720 @deftypefun guint gtk_curve_get_type (void)
1721 Returns the @code{GtkCurve} type identifier.
1722 @end deftypefun
1723
1724 @deftypefun GtkWidget* gtk_curve_new (void)
1725 Create a new @code{GtkCurve} returning the new widget as a pointer to a 
1726 @code{GtkWidget} object.
1727 @end deftypefun
1728
1729 @deftypefun void gtk_curve_reset (GtkCurve *@var{curve})
1730 @end deftypefun
1731
1732 @deftypefun void gtk_curve_set_gamma (GtkCurve *@var{curve}, gfloat @var{gamma})
1733 @end deftypefun
1734
1735 @deftypefun void gtk_curve_set_range (GtkCurve *@var{curve}, gfloat @var{min_x}, gfloat @var{max_x}, gfloat @var{min_y}, gfloat @var{max_y})
1736 @end deftypefun
1737
1738 @deftypefun void gtk_curve_get_vector (GtkCurve *@var{curve}, int @var{veclen}, gfloat @var{vector[]})
1739 @end deftypefun
1740
1741 @deftypefun void gtk_curve_set_vector (GtkCurve *@var{curve}, int @var{vaclen}, gfloat @var{vector[]})
1742 @end deftypefun
1743
1744 @deftypefun void gtk_curve_set_curve_type (GtkCurve *@var{curve}, GtkCurveType @var{type})
1745 @end deftypefun
1746
1747 @gtkstdmacros{Curve, CURVE}
1748
1749 @page
1750 @node GtkDialog, GtkDrawingArea, GtkCurve, Widgets
1751 @comment node-name, next, previous, up
1752 @section The dialog widget
1753
1754
1755 @subsection Description
1756 The dialog widget is a window (@pxref{GtkWindow}) that has a vertical box
1757 (@pxref{GtkVBox}), a horizontal box (@pxref{GtkHBox}), separated with a 
1758 horizontal separator (@pxref{GtkHSeparator}).
1759
1760 @subsection Options
1761
1762 @subsection Signals
1763
1764 @subsection Functions
1765
1766 @deftypefun guint gtk_dialog_get_type (void)
1767 Returns the @code{GtkDialog} type identifier.
1768 @end deftypefun
1769
1770 @deftypefun GtkWidget* gtk_dialog_new (void)
1771 Create a new @code{GtkDialog} object and return the new widget as a pointer
1772 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
1773 @end deftypefun
1774
1775 @gtkstdmacros{Dialog, DIALOG}
1776
1777
1778 @page
1779 @node GtkDrawingArea, GtkEntry, GtkDialog, Widgets
1780 @comment node-name, next, previous, up
1781 @section The drawing area widget
1782
1783 @subsection Description
1784
1785 @subsection Options
1786
1787 @defopt width
1788 @end defopt
1789
1790 @defopt height
1791 @end defopt
1792
1793 @subsection Signals
1794
1795 @subsection Functions
1796
1797 @deftypefun guint gtk_drawing_area_get_type (void)
1798 Returns the @code{GtkDrawingArea} type identifier.
1799 @end deftypefun
1800
1801 @deftypefun GtkWidget* gtk_drawing_area_new (void)
1802 Create a new @code{GtkDrawingArea} object returning the new widget as a 
1803 pointer to a @code{GtwWidget} object. @code{NULL} is returned on failure.
1804 @end deftypefun
1805
1806 @deftypefun void gtk_drawing_area_size (GtkDrawingArea *@var{darea}, gint @var{width}, gint @var{height})
1807 @end deftypefun
1808
1809 @gtkstdmacros{DrawingArea, DRAWING_AREA}
1810
1811
1812 @page
1813 @node GtkEntry, GtkEventBox, GtkDrawingArea, Widgets
1814 @comment node-name, next, previous, up
1815 @section The entry widget
1816
1817
1818 @subsection Description
1819
1820 @subsection Options
1821
1822 @defopt max
1823 With this option it is possible to set the @var{text_max_length} to the 
1824 value speified in the @var{max} option. This value is a guint16 value.
1825 @end defopt
1826
1827 @defopt text
1828 @end defopt
1829
1830 @subsection Signals
1831
1832 @deftypefn Signal void GtkEntry::insert_text (GtkEntry *@var{entry}, gchar *@var{text}, gint @var{length}, gint *@var{position})
1833 @end deftypefn
1834
1835 @deftypefn Signal void GtkEntry::delete_text (GtkEntry *@var{entry}, gint @var{start_pos}, gint @var{end_pos})
1836 @end deftypefn
1837
1838 @deftypefn Signal void GtkEntry::changed (GtkEntry *@var{entry})
1839 @end deftypefn
1840
1841 @deftypefn Signal void GtkEntry::set_text (GtkEntry *@var{entry})
1842 @end deftypefn
1843
1844 @deftypefn Signal void GtkEntry::activate (GtkEntry *@var{entry})
1845 @end deftypefn 
1846
1847 @subsection Functions
1848
1849 @deftypefun guint gtk_entry_get_type (void)
1850 Returns the @code{GtkEntry} type identifier.
1851 @end deftypefun
1852
1853 @deftypefun GtkWidget* gtk_entry_new (void)
1854 Create a new @code{GtkEntry} object. The new widget is returned 
1855 as a pointer to a @code{GtkWidget} object. @code{NULL} is returned on
1856 failure.
1857 @end deftypefun
1858
1859 @deftypefun GtkWidget* gtk_entry_new_with_max_length (guint16 @var{max})
1860 Create a new @code{GtkEntry} object initilizing it with the value @var{max}.
1861 The new widget is returned as a pointer to a @code{GtkWidget} object. 
1862 @code{NULL} is returned on failure.
1863 @end deftypefun
1864
1865 @deftypefun void gtk_entry_set_text (GtkEntry *@var{entry}, gchar *@var{text})
1866 Will set the text in the previously created @code{GtkEntry} object to 
1867 @var{text}. It is important to not set the fields of the @code{GtkEntry}
1868 structure directly (or, for that matter, any type derived from 
1869 @code{GtkObject}).
1870 @end deftypefun
1871
1872 @deftypefun void gtk_entry_append_text (GtkEntry *@var{entry}, gchar *@var{text})
1873 Append the text that is in the @var{text} argument to the widgets text. It is
1874 important to not set the fields of the @code{GtkEntry} structure directly.
1875 @end deftypefun
1876
1877 @deftypefun void gtk_entry_prepend_text (GtkEntry *@var{entry}, gchar *@var{text})
1878 Add the text in the @var{text} argument to the text in the @code{GtkEntry} 
1879 widget. It is important to not set the fields of the @code{GtkEntry} structure
1880 directly.
1881 @end deftypefun
1882
1883 @deftypefun void gtk_entry_set_position (GtkEntry *@var{entry}, gint @var{position})
1884 @end deftypefun
1885
1886 @deftypefun void gtk_entry_set_visibility (GtkEntry *@var{entry}, gint @var{visible})
1887 Will make the keystrokes entered into the @code{GtkEntry} object invisible
1888 when @var{visible} is @code{TRUE}. Defaults to @code{FALSE}.
1889 @end deftypefun
1890
1891 @deftypefun gchar* gtk_entry_get_text (GtkEntry *@var{entry})
1892 Returns the text that is contained in the @code{GtkEntry} as a pointer to a 
1893 @code{gchar} variable.
1894 @end deftypefun
1895
1896 @gtkstdmacros{Entry, ENTRY}
1897
1898 @page
1899 @node GtkEventBox, GtkFileSelection, GtkEntry, Widgets
1900 @comment node-name, next, previous, up
1901 @section The event box widget
1902
1903 @subsection Description
1904
1905 @subsection Options
1906
1907 @subsection Signals
1908
1909 @subsection Functions
1910 @deftypefun guint gtk_event_box_get_type (void)
1911 Returns the @code{GtkEventBox} type identifier.
1912 @end deftypefun
1913
1914 @deftypefun GtkWidget* gtk_event_box_new (void)
1915 Create a new @code{GtkEventBox} returning the new widget as a pointer to
1916 a @code{GtkWidget} object. @code{NULL} is returned on failure.
1917 @end deftypefun
1918
1919 @gtkstdmacros{GtkEventBox, EVENT_BOX}
1920
1921 @page
1922 @node GtkFileSelection, GtkFixed, GtkEventBox, Widgets
1923 @comment node-name, next, previous, up
1924 @section The file selection dialog widget
1925
1926 @subsection Description
1927
1928 @subsection Options
1929
1930 @defopt title
1931 @end defopt
1932
1933 @defopt filename
1934 @end defopt
1935
1936 @subsection Signals
1937
1938 @subsection Functions
1939
1940 @deftypefun guint gtk_file_selection_get_type (void)
1941 Returns the @code{GtkFileSelection} type identifier.
1942 @end deftypefun
1943
1944 @deftypefun GtkWidget* gtk_file_selection_new (gchar *@var{title})
1945 Create a new @code{GtkFileSelection} object and return the new widget as a
1946 pointer to a @code{GtkWidget}. @code{NULL} is returned on failure.
1947 @end deftypefun
1948
1949 @deftypefun void gtk_file_selection_set_filename (GtkFileSelection *@var{filesel}, gchar *@var{filename})
1950 @end deftypefun
1951
1952 @deftypefun gchar* gtk_file_selection_get_filename (GtkFileSelection *@var{filesel})
1953 @end deftypefun
1954
1955 @gtkstdmacros{FileSelection, FILE_SELECTION}
1956
1957 @page
1958 @node GtkFixed, GtkFrame, GtkFileSelection, Widgets
1959 @comment node-name, next, previous, up
1960 @section The fixed widget
1961
1962 @subsection Description
1963
1964 @subsection Options
1965
1966 @subsection Signals
1967
1968 @subsection Functions
1969
1970 @deftypefun guint gtk_fixed_get_type (void)
1971 Returns the @code{GtkFixed} type identifier.
1972 @end deftypefun
1973
1974 @deftypefun GtkWidget* gtk_fixed_new (void)
1975 Create a new @code{GtkFixed} object returning the new widget as a pointer to 
1976 a @code{GtkWidget} object. @code{NULL} is returned on failure.
1977 @end deftypefun
1978
1979 @deftypefun void gtk_fixed_put_new (GtkFixed *@var{fixed}, GtkWidget *@var{widget}, gint16 @var{x}, gint16 @var{y})
1980 @end deftypefun
1981
1982 @deftypefun void gtk_fixed_move (GtkFixed *@var{fixed}, GtkWidget *@var{widget}, gint16 @var{x}, gint16 @var{y})
1983 @end deftypefun
1984
1985 @gtkstdmacros{Fixed, FIXED}
1986
1987 @page
1988 @node GtkFrame, GtkGamma, GtkFixed, Widgets
1989 @comment node-name, next, previous, up
1990 @section The frame widget
1991
1992
1993 @subsection Options
1994 @defopt label
1995 @end defopt
1996
1997 @defopt xalign
1998 @end defopt
1999
2000 @defopt yalign
2001 @end defopt
2002
2003 @defopt type
2004 @end defopt
2005
2006 @subsection Description
2007
2008 @subsection Signals
2009
2010 @subsection Functions
2011
2012 @deftypefun guint gtk_frame_get_type (void)
2013 Returns the @code{GtkFrame} type identifier.
2014 @end deftypefun
2015
2016 @deftypefun GtkWidget* gtk_frame_new (gchar *@var{label})
2017 Create a new @code{GtkFrame} object initilizing it with the value in 
2018 @var{label}. The new widget is returned as a pointer to a @code{GtkWidget}
2019 object. @code{NULL} is returned on failure.
2020 @end deftypefun
2021
2022 @deftypefun void gtk_frame_set_label (GtkFrame *@var{frame}, gchar *@var{label})
2023 @end deftypefun
2024
2025 @deftypefun void gtk_frame_set_label_align (GtkFrame *@var{frame}, gfloat @var{xalign}, gfloat @var{yalign})
2026 @end deftypefun
2027
2028 @deftypefun void gtk_frame_set_shadow_type (GtkFrame *@var{frame}, GtkShadowType @var{type})
2029 @end deftypefun
2030
2031 @gtkstdmacros{Frame, FRAME}
2032
2033 @page
2034 @node GtkGamma, GtkHBox, GtkFrame, Widgets
2035 @comment node-name, next, previous, up
2036 @section The gamma widget
2037
2038 @subsection Description
2039
2040 @subsection Options
2041
2042 @subsection Signals
2043
2044 @subsection Functions
2045
2046 @deftypefun guint gtk_gamma_curve_get_type (void)
2047 Returns the @code{GtkGamma} type identifier.
2048 @end deftypefun
2049
2050 @deftypefun GtkWidget* gtk_gamma_curve_new (void)
2051 Create a new @code{GtkGamma} object returning the new widget as a pointer 
2052 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2053 @end deftypefun
2054
2055 @gtkstdmacros{Gamma, GAMMA}
2056
2057 @page
2058 @node GtkHBox, GtkHButtonBox, GtkGamma, Widgets
2059 @comment node-name, next, previous, up
2060 @section The horizontal box widget
2061
2062
2063 @subsection Description
2064
2065 @subsection Options
2066
2067 @defopt homogeneous
2068 This option controls whether each object in the box has the same size. In the
2069 case of the @code{GtkHBox}, this effects the width. If this option is set then
2070 the @var{expand} option to the @code{gtk_box_pack} (@pxref{GtkBox}) routines
2071 is always set to @code{TRUE}.
2072 @end defopt
2073
2074 @defopt spacing
2075 This option controls the amount of space that is added between the objects
2076 packed into this @code{GtkVBox} object.
2077 @end defopt
2078
2079 @subsection Signals
2080
2081 @subsection Functions
2082
2083 @deftypefun guint gtk_hbox_get_type (void)
2084 Returns the @code{GtkHBox} type identifier.
2085 @end deftypefun
2086
2087 @deftypefun GtkWidget* gtk_hbox_new (gint @var{homogeneous}, gint @var{spacing})
2088 Create a new @code{GtkHBox} object initilizing it with the values in 
2089 @var{homogeneous} and @var{spacing}. The new widget is returned as a pointer 
2090 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2091 @end deftypefun
2092
2093 @gtkstdmacros{HBox, HBOX}
2094
2095 @page
2096 @node GtkHButtonBox, GtkHPaned, GtkHBox, Widgets
2097 @comment node-name, next, previous, up
2098 @section The horizontal button box widget
2099
2100 @subsection Description
2101
2102 @subsection Options
2103
2104 @defopt spacing
2105 @end defopt
2106
2107 @defopt layout
2108 @end defopt
2109
2110 @subsection Signals
2111
2112 @subsection Functions
2113
2114 @deftypefun guint gtk_hbutton_box_get_type (void)
2115 Returns the @code{GtkHButtonBox} type identifier.
2116 @end deftypefun
2117
2118 @deftypefun GtkWidget* gtk_hbutton_box_new (void)
2119 Create a new @code{GtkHButtonBox} object returning the new widget as a pointer
2120 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2121 @end deftypefun
2122
2123 @deftypefun void gtk_hbutton_box_set_spacing_default (gint @var{spacing})
2124 @end deftypefun
2125
2126 @deftypefun void gtk_hbutton_box_set_layout_default (gint @var{layout})
2127 @end deftypefun
2128
2129 @deftypefun gint gtk_hbutton_box_get_spacing_default (void)
2130 @end deftypefun
2131
2132 @deftypefun gint gtk_hbutton_box_get_layout_default (void)
2133 @end deftypefun
2134
2135 @gtkstdmacros {HButtonBox, HBUTTON_BOX}
2136
2137 @page
2138 @node GtkHPaned, GtkHRuler, GtkHButtonBox, Widgets
2139 @comment node-name, next, previous, up
2140 @section The horizontal paned widget
2141
2142 @subsection Description 
2143
2144 @subsection Options
2145
2146 @subsection Signals
2147
2148 @subsection Functions
2149
2150 @deftypefun void gtk_hpaned_get_type (void)
2151 Returns the @code{GtkHPaned} type identifier.
2152 @end deftypefun
2153
2154 @deftypefun GtkWidget* gtk_hpaned_new (void)
2155 Create a new @code{GtkHPaned} object returning the new widget as a pointer 
2156 to a @code{GtkWidget} object.
2157 @end deftypefun
2158
2159 @gtkstdmacros{HPaned, HPANED}
2160
2161 @page
2162 @node GtkHRuler, GtkHScale, GtkHPaned, Widgets
2163 @comment node-name, next, previous, up
2164 @section The horizontal ruler widget
2165
2166
2167 @subsection Description
2168
2169 @subsection Options
2170
2171 @subsection Signals
2172
2173 @subsection Functions
2174
2175 @deftypefun guint gtk_hruler_get_type (void)
2176 Returns the @code{GtkHRuler} type identifier.
2177 @end deftypefun
2178
2179 @deftypefun GtkWidget* gtk_hruler_new (void)
2180 Create a new @code{GtkHRuler} object returning the new widget as a pointer
2181 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2182 @end deftypefun
2183
2184 @gtkstdmacros{HRuler, HRULER}
2185
2186
2187 @page
2188 @node GtkHScale, GtkHScrollbar, GtkHRuler, Widgets
2189 @comment node-name, next, previous, up
2190 @section The horizontal scale widget
2191
2192
2193 @subsection Description
2194
2195 @subsection Options
2196
2197 @subsection Signals
2198
2199 @subsection Functions
2200
2201 @deftypefun guint gtk_hscale_get_type (void)
2202 Returns the @code{GtkHScale} type identifier.
2203 @end deftypefun
2204
2205 @deftypefun GtkWidget* gtk_hscale_new (GtkAdjustment *@var{adjustment})
2206 Create a new @code{GtkHScale} object returning the new widget as a pointer
2207 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2208 @end deftypefun
2209
2210 @gtkstdmacros{HScale, HSCALE}
2211
2212
2213 @page
2214 @node GtkHScrollbar, GtkHSeparator, GtkHScale, Widgets
2215 @comment node-name, next, previous, up
2216 @section The horizontal scrollbar widget
2217
2218
2219 @subsection Description
2220
2221 @subsection Options
2222
2223 @subsection Signals
2224
2225 @subsection Functions
2226
2227 @deftypefun guint gtk_hscrollbar_get_type (void)
2228 Returns the @code{GtkHScrollbar} type identifier.
2229 @end deftypefun
2230
2231 @deftypefun GtkWidget* gtk_hscrollbar_new (GtkAdjustment *@var{adjustment})
2232 Create a new @code{GtkHScrollbar} object returning the new widget as a 
2233 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2234 @end deftypefun
2235
2236 @gtkstdmacros{HScrollbar, HSCROLLBAR}
2237
2238
2239 @page
2240 @node GtkHSeparator, GtkImage, GtkHScrollbar, Widgets
2241 @comment node-name, next, previous, up
2242 @section The horizontal separator widget
2243
2244
2245 @subsection Description
2246
2247 @subsection Options
2248
2249 @subsection Signals
2250
2251 @subsection Functions
2252
2253 @deftypefun guint gtk_hseparator_get_type (void)
2254 Returns the @code{GtkHSeparator} type identifier.
2255 @end deftypefun
2256
2257 @deftypefun GtkWidget* gtk_hseparator_new (void)
2258 Create a new @code{GtkHSeparator} object returning the new widget as a pointer
2259 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2260 @end deftypefun
2261
2262 @gtkstdmacros{HSeparator, HSEPARATOR}
2263
2264
2265 @page
2266 @node GtkImage, GtkInputDialog, GtkHSeparator, Widgets
2267 @comment node-name, next, previous, up
2268 @section The image widget
2269
2270
2271 @subsection Description
2272
2273 @subsection Options
2274
2275 @subsection Signals
2276
2277 @subsection Functions
2278
2279 @deftypefun guint gtk_image_get_type (void)
2280 Returns the @code{GtkImage} type identifier.
2281 @end deftypefun
2282
2283 @deftypefun GtkWidget* gtk_image_new (GdkImage *@var{val}, GdkBitmap *@var{mask})
2284 Create a new @code{GtkImage} object initilizing it with the values in 
2285 @var{val} and @var{mask}. The new widget is returned as a pointer to a 
2286 @code{GtkWidget} object. @code{NULL} is returned on failure.
2287 @end deftypefun
2288
2289 @deftypefun void gtk_image_set (GtkImage *@var{image}, GdkImage *@var{val}, GdkBitmap *@var{mask})
2290 @end deftypefun
2291
2292 @deftypefun void gtk_image_get (GtkImage *@var{image}, GdkImage **@var{val}, GdkBitmap **@var{mask})
2293 @end deftypefun
2294
2295 @gtkstdmacros{Image, IMAGE}
2296
2297 @page
2298 @node GtkInputDialog, GtkItem, GtkImage, Widgets
2299 @comment node-name, next, previous, up
2300 @section The input dialog widget
2301
2302 @subsection Description
2303
2304 @subsection Options
2305
2306 @subsection Signals
2307
2308 @deftypefn Signal void GtkInputDialog::enable_device (GtkInputDialog *@var{inputd}, guint32 @var{devid}, gpointer *@var{data})
2309 @end deftypefn
2310
2311 @deftypefn Signal void GtkInputDialog::disable_device (GtkInputDialog *@var{inputd}, guint32 @var{devid}, gpointer *@var{data})
2312 @end deftypefn
2313
2314 @subsection Functions
2315
2316 @deftypefun guint gtk_input_dialog_get_type (void)
2317 Returns the @code{GtkInputDialog} type identifier.
2318 @end deftypefun
2319
2320 @deftypefun GtkWidget* gtk_input_dialog_new (void)
2321 Create a new @code{GtkInputDialog} object and return the new widget as a 
2322 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2323 @end deftypefun
2324
2325
2326 @gtkstdmacros{InputDialog, INPUTDIALOG}
2327
2328 @page
2329 @node GtkItem, GtkLabel, GtkInputDialog, Widgets
2330 @comment node-name, next, previous, up
2331 @section The item widget
2332
2333
2334 @subsection Description
2335
2336 @subsection Signals
2337
2338 @deftypefn Signal void GtkItem::select (GtkItem *@var{item})
2339 @end deftypefn
2340
2341 @deftypefn Signal void GtkItem::deselect (GtkItem *@var{item})
2342 @end deftypefn
2343
2344 @deftypefn Signal void GtkItem::toggle (GtkItem *@var{toggle})
2345 @end deftypefn
2346
2347 @subsection Functions
2348
2349 @deftypefun guint gtk_item_get_type (void)
2350 Returns the @code{GtkItem} type identifier.
2351 @end deftypefun
2352
2353 @deftypefun void gtk_item_select (GtkItem *@var{item})
2354 @end deftypefun
2355
2356 @deftypefun void gtk_item_deselect (GtkItem *@var{item})
2357 @end deftypefun
2358
2359 @deftypefun void gtk_item_toggle (GtkItem *@var{item})
2360 @end deftypefun
2361
2362 @gtkstdmacros{Item, ITEM}
2363
2364
2365 @page
2366 @node GtkLabel, GtkList, GtkItem, Widgets
2367 @comment node-name, next, previous, up
2368 @section The label widget
2369
2370 @subsection Description
2371
2372 @subsection Options
2373
2374 @defopt str
2375 @end defopt
2376
2377 @subsection Signals
2378
2379 @subsection Functions
2380
2381 @deftypefun guint gtk_label_get_type (void)
2382 Returns the @code{GtkLabel} type identifer.
2383 @end deftypefun
2384
2385 @deftypefun GtkWidget* gtk_label_new (GtkLabel *@var{label}, gchar *@var{str})
2386 Create a new @code{GtkLabel} object and initialize it with the 
2387 text in @var{str}. The new widget is returned as a pointer to a 
2388 @code{GtkWidget} object. @code{NULL} is returned on faulure.
2389 @end deftypefun
2390
2391 @deftypefun void gtk_label_set (GtkLabel *@var{label}, gchar *@var{str})
2392 Set the @code{GtkLabel} label value to the value passed in the @var{str} 
2393 argument.
2394 @end deftypefun
2395
2396 @deftypefun void gtk_label_get (GtkLabel *@var{label}, gchar **@var{str})
2397 Copies the current value in the @code{GtkLabel} label field to the variable
2398 passed in the @var{str} argument.
2399 @end deftypefun
2400
2401 @gtkstdmacros{Label, LABEL}
2402
2403
2404 @page
2405 @node GtkList, GtkListItem, GtkLabel, Widgets
2406 @comment node-name, next, previous, up
2407 @section The list widget
2408
2409
2410 @subsection Description
2411
2412 @subsection Signals
2413
2414 @deftypefn Signal void GtkList::selection_changed (GtkList *@var{list})
2415 @end deftypefn
2416
2417 @deftypefn Signal void GtkList::select_child (GtkList *@var{list}, GtkWidget *@var{child})
2418 @end deftypefn
2419
2420 @deftypefn Signal void GtkList::unselect_child (GtkList *@var{list}, GtkWidget *@var{child})
2421 @end deftypefn
2422
2423 @subsection Functions
2424
2425 @deftypefun guint gtk_list_get_type (void)
2426 Returns the @code{GtkList} type identifier.
2427 @end deftypefun
2428
2429 @deftypefun GtkWidget* gtk_list_new (void)
2430 Create a new @code{GtkList} object and return the new widget as a pointer to
2431 a @code{GtkWidget} object. @code{NULL} is returned on failure.
2432 @end deftypefun
2433
2434 @deftypefun void gtk_list_insert_items (GtkList *@var{list}, GList *@var{items}, gint @var{position})
2435 @end deftypefun
2436
2437 @deftypefun void gtk_list_append_items (GtkList *@var{list}, GList *@var{items})
2438 @end deftypefun
2439
2440 @deftypefun void gtk_list_prepend_items (GtkList *@var{list}, GList *@var{items})
2441 @end deftypefun
2442
2443 @deftypefun void gtk_list_remove_items (GtkList *@var{list}, GList *@var{items})
2444 @end deftypefun
2445
2446 @deftypefun void gtk_list_clear_items (GtkList *@var{list}, gint @var{start}, gint @var{end})
2447 @end deftypefun
2448
2449 @deftypefun void gtk_list_select_item (GtkList *@var{list}, gint @var{item})
2450 @end deftypefun
2451
2452 @deftypefun void gtk_list_unselect_item (GtkList *@var{list}, gint @var{item})
2453 @end deftypefun
2454
2455 @deftypefun void gtk_list_select_child (GtkList *@var{list}, GtkWidget *@var{child})
2456 @end deftypefun
2457
2458 @deftypefun void gtk_list_unselect_child (GtkList *@var{list}, GtkWidget *@var{child})
2459 @end deftypefun
2460
2461 @deftypefun gint gtk_list_child_position (GtkList *@var{list}, GtkWidget *@var{child})
2462 @end deftypefun
2463
2464 @deftypefun void gtk_list_set_selection_mode (GtkList *@var{list}, GtkSelectionMode @var{mode})
2465 @end deftypefun
2466
2467 @gtkstdmacros{List, LIST}
2468
2469
2470 @page
2471 @node GtkListItem, GtkMenu, GtkList, Widgets
2472 @comment node-name, next, previous, up
2473 @section The list item widget
2474
2475
2476 @subsection Description
2477
2478 @subsection Options
2479
2480 @subsection Signals
2481
2482 @subsection Functions
2483
2484 @deftypefun guint gtk_list_item_get_type (void)
2485 Returns the @code{GtkListItem} type identifier.
2486 @end deftypefun
2487
2488 @deftypefun GtkWidget* gtk_list_item_new (void)
2489 Create a new @code{GtkListItem} object and return the new widget as a 
2490 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2491 @end deftypefun
2492
2493 @deftypefun GtkWidget* gtk_list_item_new_with_label (gchar *@var{label})
2494 Create a new @code{GtkListItem} object initalizing with the value @var{label}.
2495 The new widget is returned as a pointer to a @code{GtkWidget} object. 
2496 @code{NULL} is returned on failure.
2497 @end deftypefun
2498
2499 @deftypefun void gtk_list_item_select (GtkListItem *@var{list_item})
2500 @end deftypefun
2501
2502 @deftypefun void gtk_list_item_deselect (GtkListItem *@var{list_item})
2503 @end deftypefun
2504
2505 @gtkstdmacros{ListItem, LIST_ITEM}
2506
2507
2508 @page
2509 @node GtkMenu, GtkMenuBar, GtkListItem, Widgets
2510 @comment node-name, next, previous, up
2511 @section The menu widget
2512
2513
2514 @subsection Description
2515
2516 @subsection Options
2517
2518 @subsection Signals
2519
2520 @subsection Functions
2521
2522 @deftypefun guint gtk_menu_get_type (void)
2523 Returns the @code{GtkMenu} type identifier.
2524 @end deftypefun
2525
2526 @deftypefun GtkWidget* gtk_menu_new (void)
2527 Create a new @code{GtkMenu} object returning the new widget as a pointer to 
2528 a @code{GtkWidget}. @code{NULL} is returned on failure.
2529 @end deftypefun
2530
2531 @deftypefun void gtk_menu_append (GtkMenu *@var{menu}, GtkWidget *@var{child})
2532 @end deftypefun
2533
2534 @deftypefun void gtk_menu_prepend (GtkMenu *@var{menu}, GtkWidget *@var{child})
2535 @end deftypefun
2536
2537 @deftypefun void gtk_menu_insert (GtkMenu *@var{menu}, GtkWidget *@var{child}, gint @var{position})
2538 @end deftypefun
2539
2540 @deftypefun void gtk_menu_popup (GtkMenu *@var{menu}, GtkWidget *@var{parent_menu_shell}, GtkWidget *@var{parent_menu_item}, GtkMenuPositionFunc @var{func}, gpointer @var{data}, gint @var{button})
2541 @end deftypefun
2542
2543 @deftypefun void gtk_menu_popdown (GtkMenu *@var{menu})
2544 @end deftypefun
2545
2546 @deftypefun GtkWidget* gtk_menu_get_active (GtkMenu *@var{menu})
2547 @end deftypefun
2548
2549 @deftypefun void gtk_menu_set_active (GtkMenu *@var{menu})
2550 @end deftypefun
2551
2552 @deftypefun void gtk_menu_set_accelerator_table (GtkMenu *@var{menu}, GtkAcceleratorTable *@var{table})
2553 @end deftypefun
2554
2555 @gtkstdmacros{Menu, MENU}
2556
2557
2558 @page
2559 @node GtkMenuBar, GtkMenuItem, GtkMenu, Widgets
2560 @comment node-name, next, previous, up
2561 @section The menu bar widget
2562
2563 @subsection Description
2564
2565 @subsection Options
2566
2567 @defopt position
2568 @end defopt
2569
2570 @subsection Signals
2571
2572 @subsection Functions
2573
2574 @deftypefun guint gtk_menu_bar_get_type (void)
2575 Returns the @code{GtkMenuBar} type identifier.
2576 @end deftypefun
2577
2578 @deftypefun GtkWidget* gtk_menu_bar_new (void)
2579 Create a new @code{GtkMenuBar} object returning the new widget as a pointer
2580 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2581 @end deftypefun
2582
2583 @deftypefun void gtk_menu_bar_append (GtkMenuBar *@var{menu_bar}, GtkWidget *@var{child})
2584 @end deftypefun
2585
2586 @deftypefun void gtk_menu_bar_prepend (GtkMenuBar *@var{menu_bar}, GtkWidget *@var{child})
2587 @end deftypefun
2588
2589 @deftypefun void gtk_menu_bar_insert (GtkMenuBar *@var{menu_bar}, GtkWidget *@var{child}, gint @var{position})
2590 @end deftypefun
2591
2592 @gtkstdmacros{MenuBar, MENU_BAR}
2593
2594
2595 @page
2596 @node GtkMenuItem, GtkMenuShell, GtkMenuBar, Widgets
2597 @comment node-name, next, previous, up
2598 @section The menu item widget
2599
2600
2601 @subsection Description
2602
2603 @subsection Options
2604
2605 @subsection Signals
2606
2607 @deftypefn Signal void GtkMenuItem::activate (GtkMenuItem *@var{menu_item})
2608 @end deftypefn
2609
2610 @subsection Functions
2611
2612 @deftypefun guint gtk_menu_item_get_type (void)
2613 Returns the @code{GtkMenuItem} type identifier.
2614 @end deftypefun
2615
2616 @deftypefun GtkWidget* gtk_menu_item_new (void)
2617 Create a new @code{GtkMenuItem} object returning the new widget as a pointer 
2618 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2619 @end deftypefun
2620
2621 @deftypefun GtkWidget* gtk_menu_item_new_with_label (gchar *@var{label})
2622 Create a new @code{GtkMenuItem} object initilizing it with the value in 
2623 @var{label}. The new widget is returned as a pointer to a @code{GtkWidget}
2624 object. @code{NULL} is returned on failure.
2625 @end deftypefun
2626
2627 @deftypefun void gtk_menu_item_set_submenu (GtkMenuItem *@var{menu_item}, GtkWidget *@var{submenu})
2628 @end deftypefun
2629
2630 @deftypefun void gtk_menu_item_set_placement (GtkMenuItem *@var{menu_item}, GtkSubmenuPlacement @var{placement})
2631 @end deftypefun
2632
2633 @deftypefun void gtk_menu_item_accelerator_size (GtkMenuItem *@var{menu_item})
2634 @end deftypefun
2635
2636 @deftypefun void gtk_menu_item_accelerator_text (GtkMenuItem *@var{menu_item}, gchar *@var{buffer})
2637 @end deftypefun
2638
2639 @deftypefun void gtk_menu_item_configure (GtkMenuItem *@var{menu_item}, gint @var{show_toggle_indicator}, gint @var{show_submenu_indicator})
2640 @end deftypefun
2641
2642 @deftypefun void gtk_menu_item_select (GtkMenuItem *@var{menu_item})
2643 @end deftypefun
2644
2645 @deftypefun void gtk_menu_item_deselect (GtkMenuItem *@var{menu_item})
2646 @end deftypefun
2647
2648 @deftypefun void gtk_menu_item_activate (GtkMenuItem *@var{menu_item})
2649 @end deftypefun
2650
2651 @gtkstdmacros{MenuItem, MENU_ITEM}
2652
2653
2654 @page
2655 @node GtkMenuShell, GtkMisc, GtkMenuItem, Widgets
2656 @comment node-name, next, previous, up
2657 @section The menu shell widget
2658
2659
2660 @subsection Description
2661
2662 @subsection Options
2663
2664 @subsection Signals
2665
2666 @deftypefn Signal void GtkMenuShell::deactivate (GtkMenuShell *@var{menu_shell})
2667 @end deftypefn
2668
2669 @subsection Functions
2670
2671 @deftypefun guint gtk_menu_shell_get_type (void)
2672 Returns the @code{GtkMenuShell} type identifier.
2673 @end deftypefun
2674
2675 @deftypefun void gtk_menu_shell_append (GtkMenuShell *@var{menu_shell}, GtkWidget *@var{child})
2676 @end deftypefun
2677
2678 @deftypefun void gtk_menu_shell_prepend (GtkMenuShell *@var{menu_shell}, GtkWidget *@var{child})
2679 @end deftypefun
2680
2681 @deftypefun void gtk_menu_shell_insert (GtkMenuShell *@var{menu_shell}, GtkWidget *@var{child}, gint @var{position})
2682 @end deftypefun
2683
2684 @deftypefun void gtk_menu_shell_deactivate (GtkMenuShell *@var{menu_shell})
2685 @end deftypefun
2686
2687 @gtkstdmacros{MenuShell, MENU_SHELL}
2688
2689
2690 @page
2691 @node GtkMisc, GtkNotebook, GtkMenuShell, Widgets
2692 @comment node-name, next, previous, up
2693 @section The misc widget
2694
2695 @subsection Description
2696
2697 @subsection Options
2698
2699 @defopt xalign
2700 @end defopt
2701
2702 @defopt yalign
2703 @end defopt
2704
2705 @defopt xpad
2706 @end defopt
2707
2708 @defopt ypad
2709 @end defopt
2710
2711 @subsection Signals
2712
2713 @subsection Functions
2714
2715 @deftypefun guint gtk_misc_get_type (void)
2716 Returns the @code{GtkMisc} type identifier.
2717 @end deftypefun
2718
2719 @deftypefun void gtk_misc_set_alignment (GtkMisc *@var{misc}, gfloat @var{xalign}, gfloat @var{yalign})
2720 @end deftypefun
2721
2722 @deftypefun void gtk_misc_set_padding (GtkMisc *@var{misc}, gint @var{xpad}, gint @var{ypad})
2723 @end deftypefun
2724
2725 @gtkstdmacros{Misc, MISC}
2726
2727
2728 @page
2729 @node GtkNotebook, GtkOptionMenu, GtkMisc, Widgets
2730 @comment node-name, next, previous, up
2731 @section The notebook widget
2732
2733 @subsection Description
2734
2735 @subsection Options
2736
2737 @subsection Signals
2738
2739 @subsection Functions
2740
2741 @deftypefun guint gtk_notebook_get_type (void)
2742 Returns the @code{GtkNotebook} type identifier.
2743 @end deftypefun
2744
2745 @deftypefun GtkWidget* gtk_notebook_new (void)
2746 Create a new @code{GtkNotebook} object returning the new widget as a pointer
2747 to a @code{GtkWidget} object. @code{NULL} is returned on a failure.
2748 @end deftypefun
2749
2750 @deftypefun void gtk_notebook_append_page (GtkNotebook *@var{notebook}, GtkWidget *@var{child}, GtkWidget *@var{tab_label})
2751 @end deftypefun
2752
2753 @deftypefun void gtk_notebook_prepend_page (GtkNotebook *@var{notebook}, GtkWidget *@var{child}, GtkWidget *@var{tab_label})
2754 @end deftypefun
2755
2756 @deftypefun void gtk_notebook_insert_page (GtkNotebook *@var{notebook}, GtkWidget *@var{child}, GtkWidget *@var{tab_label}, gint @var{position})
2757 @end deftypefun
2758
2759 @deftypefun void gtk_notebook_remove_page (GtkNotebook *@var{notebook}, gint @var{page_num})
2760 @end deftypefun
2761
2762 @deftypefun void gtk_notebook_set_page (GtkNotebook *@var{notebook}, gint @var{page_num})
2763 @end deftypefun
2764
2765 @deftypefun void gtk_notebook_next_page (GtkNotebook *@var{notebook})
2766 @end deftypefun
2767
2768 @deftypefun void gtk_notebook_prev_page (GtkNotebook *@var{notebook})
2769 @end deftypefun
2770
2771 @deftypefun void gtk_notebook_set_tab_pos (GtkNotebook *@var{notebook}, GtkPositionType @var{pos})
2772 @end deftypefun
2773
2774 @deftypefun void gtk_notebook_set_show_tabs (GtkNotebook *@var{notebook}, gint @var{show_tabs})
2775 @end deftypefun
2776
2777 @deftypefun void gtk_notebook_set_show_border (GtkNotebook *@var{notebook}, gint @var{show_border})
2778 @end deftypefun
2779
2780 @gtkstdmacros{Notebook, NOTEBOOK}
2781
2782
2783 @page
2784 @node GtkOptionMenu, GtkPaned, GtkNotebook, Widgets
2785 @comment node-name, next, previous, up
2786 @section The option menu widget
2787
2788 @subsection Description
2789
2790 @subsection Options
2791
2792 @defopt index
2793 @end defopt
2794
2795 @subsection Signals
2796
2797 @subsection Functions
2798
2799 @deftypefun guint gtk_option_menu_get_type (void)
2800 Returns the @code{GtkOptionMenu} type identifier.
2801 @end deftypefun
2802
2803 @deftypefun GtkWidget* gtk_option_menu_new (void)
2804 Create a new @code{GtkOptionMenu} object returning the new widget as a 
2805 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2806 @end deftypefun
2807
2808 @deftypefun GtkWidget* gtk_option_menu_get_menu (GtkOptionMenu *@var{option_menu})
2809 @end deftypefun
2810
2811 @deftypefun void gtk_option_menu_set_menu (GtkOptionMenu *@var{option_menu}, GtkWidget *@var{menu})
2812 @end deftypefun
2813
2814 @deftypefun void gtk_option_menu_remove_menu (GtkOptionMenu *@var{option_menu})
2815 @end deftypefun
2816
2817 @deftypefun void gtk_option_menu_set_history (GtkOptionMenu *@var{option_menu}, gint @var{index})
2818 @end deftypefun
2819
2820 @gtkstdmacros{OptionMenu, OPTION_MENU}
2821
2822 @page
2823 @node GtkPaned, GtkPixmap, GtkOptionMenu, Widgets
2824 @comment node-name, next, previous, up
2825 @section The paned widget
2826
2827 @subsection Description
2828
2829 @subsection Options
2830
2831 @subsection Signals
2832
2833 @subsection Functions
2834
2835 @deftypefun guint gtk_paned_get_type (void)
2836 Returns the @code{GtkPaned} type identifier.
2837 @end deftypefun
2838
2839 @deftypefun void gtk_paned_add1 (GtkPaned *@var{paned}, GtkWidget *@var{child})
2840 @end deftypefun
2841
2842 @deftypefun void gtk_paned_add2 (GtkPaned *@var{paned}, GtkWidget *@var{child})
2843 @end deftypefun
2844
2845 @deftypefun void gtk_paned_handle_size (GtkPaned *@var{paned}, guint16 @var{size})
2846 @end deftypefun
2847
2848
2849 @deftypefun void gtk_paned_gutter_size (GtkPaned *@var{paned}, guint16 @var{size})
2850 @end deftypefun
2851
2852 @gtkstdmacros{Paned, PANED}
2853
2854 @page
2855 @node GtkPixmap, GtkPreview, GtkPaned, Widgets
2856 @comment node-name, next, previous, up
2857 @section The pixmap widget
2858
2859
2860 @subsection Description
2861
2862 @subsection Options
2863
2864 @subsection Signals
2865
2866 @subsection Functions
2867
2868 @deftypefun guint gtk_pixmap_get_type (void)
2869 Returns the @code{GtkPixmap} type identifier.
2870 @end deftypefun
2871
2872 @deftypefun GtkWidget* gtk_pixmap_new (GdkPixmap *@var{normal}, GdkPixmap *@var{active}, GdkPixmap *@var{prelight}, GdkPixmap *@var{selected}, GdkPixmap *@var{insensitive})
2873 @end deftypefun
2874
2875 @deftypefun void gtk_pixmap_set (GtkPixmap *@var{pixmap}, GdkPixmap *@var{val}, GtkStateType @var{state})
2876 @end deftypefun
2877
2878 @deftypefun void gtk_pixmap_get (GtkPixmap *@var{pixmap}, GdkPixmap **@var{val}, GtkStateType @var{state})
2879 @end deftypefun
2880
2881 @gtkstdmacros{Pixmap, PIXMAP}
2882
2883
2884 @page
2885 @node GtkPreview, GtkProgressBar, GtkPixmap, Widgets
2886 @comment node-name, next, previous, up
2887 @section The preview widget
2888
2889 @subsection Description
2890
2891 @subsection Options
2892
2893 @defopt type
2894 @end defopt
2895
2896 @defopt width
2897 @end defopt
2898
2899 @defopt height
2900 @end defopt
2901
2902 @subsection Signals
2903
2904 @subsection Functions
2905
2906 @deftypefun guint gtk_preview_get_type (void)
2907 Returns the @code{GtkPreview} type identifier.
2908 @end deftypefun
2909
2910 @deftypefun void gtk_preview_uninit (void)
2911 @end deftypefun
2912
2913 @deftypefun GtkWidget* gtk_preview_new (GtkPreviewType @var{type})
2914 Create a new @code{GtkPreview} object initilizing it with the values in 
2915 @var{type}. The new widget is returned as a pointer to a @code{GtwWidget} 
2916 object. @code{NULL} is returned on failure.
2917 @end deftypefun
2918
2919 @deftypefun void gtk_preview_size (GtkPreview *@var{preview}, gint @var{width}, gint @var{height})
2920 Set the size of the @var{preview} object to @var{width} and @var{height}.
2921 @end deftypefun
2922
2923 @deftypefun void gtk_preview_put (GtkPreview *@var{preview}, GdkWindow *@var{window}, GdkGC *@var{gc}, gint @var{srcx}, gint @var{srcy}, gint @var{destx}, gint @var{desty}, gint @var{width}, gint @var{height})
2924 @end deftypefun
2925
2926 @deftypefun void gtk_preview_put_row (GtkPreview *@var{preview}, guchar *@var{src}, guchar *@var{dest}, gint @var{x}, gint @var{y}, gint @var{w})
2927 @end deftypefun
2928
2929 @deftypefun void gtk_preview_draw_row (GtkPreview *@var{preview}, guchar @var{data}, gint @var{x}, gint @var{y}, gint @var{w})
2930 @end deftypefun
2931
2932 @deftypefun void gtk_preview_set_expand (GtkPreview *@var{preview}, gint @var{expand})
2933 @end deftypefun
2934
2935 @deftypefun void gtk_preview_set_gamma (double @var{gamma})
2936 @end deftypefun
2937
2938 @deftypefun void gtk_preview_set_color_cube (guint @var{nred_shades}, guint @var{ngreen_shades}, guint @var{nblue_shades}, guint @var{ngray_shades})
2939 @end deftypefun
2940
2941 @deftypefun void gtk_preview_set_install_cmap (gint @var{install_cmap})
2942 @end deftypefun
2943
2944 @deftypefun void gtk_preview_set_reserved (gint @var{nreserved})
2945 @end deftypefun
2946
2947 @deftypefun GdkVisual* gtk_preview_get_visual (void)
2948 @end deftypefun
2949
2950 @deftypefun GdkColormap* gtk_preview_get_cmap (void)
2951 @end deftypefun
2952
2953 @deftypefun GtkPreviewInfo* gtk_preview_get_info (void)
2954 @end deftypefun
2955
2956 @gtkstdmacros{Preview, PREVIEW}
2957
2958
2959 @page
2960 @node GtkProgressBar, GtkRadioButton, GtkPreview, Widgets
2961 @comment node-name, next, previous, up
2962 @section The progress bar widget
2963
2964
2965 @subsection Description
2966
2967 @subsection Options
2968
2969 @defopt percentage
2970 @end defopt
2971
2972 @subsection Signals
2973
2974 @subsection Functions
2975
2976 @deftypefun guint gtk_progress_bar_get_type (void)
2977 Returns the @code{GtkProgressBar} type identifier.
2978 @end deftypefun
2979
2980 @deftypefun GtkWidget* gtk_progress_bar_new (void)
2981 Create a new @code{GtkProgressBar} object returning the new widget as a 
2982 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
2983 @end deftypefun
2984
2985 @deftypefun void gtk_progress_bar_update (GtkProgressBar *@var{pbar}, gfloat @var{percentage})
2986 Cause the @code{GtkProgessBar} to update its visual apperance to reflect the
2987 @var{percentage}.
2988 @end deftypefun
2989
2990 @gtkstdmacros{ProgressBar, PROGRESS_BAR}
2991
2992
2993 @page
2994 @node GtkRadioButton, GtkRadioMenuItem, GtkProgressBar, Widgets
2995 @comment node-name, next, previous, up
2996 @section The radio button widget
2997
2998 @subsection Description
2999
3000 @subsection Options
3001
3002 @defopt group
3003 @end defopt
3004
3005 @defopt label
3006 @end defopt
3007
3008 @subsection Signals
3009
3010 @subsection Functions
3011
3012 @deftypefun guint gtk_radio_button_get_type (void)
3013 Returns the @code{GtkRadioButton} type identifier.
3014 @end deftypefun
3015
3016 @deftypefun GtkWidget* gtk_radio_button_new (GSList *@var{group})
3017 Create a new @code{GtkRadioButton} object initilizing it with the value
3018 in the @var{group} argument. The new widget is returned as a pointer to a 
3019 @code{GtkWidget} object. @code{NULL} is returned on failure.
3020 @end deftypefun
3021
3022 @deftypefun GtkWidget* gtk_radio_button_new_with_label (GSList *@var{group}, gchar *@var{label})
3023 Create a new @code{GtkRadioButton} object initilizing it with the values in
3024 the @var{group} and @var{label} arguments. The new widget is returned as a 
3025 pointer to @code{GtkWidget} object. @code{NULL} is returned on failure.
3026 @end deftypefun
3027
3028 @deftypefun GSList* gtk_radio_button_group (GtkRadioButton *@var{radio_button})
3029 @end deftypefun
3030
3031 @gtkstdmacros{RadioButton, RADIO_BUTTON}
3032
3033
3034 @page
3035 @node GtkRadioMenuItem, GtkRange, GtkRadioButton, Widgets
3036 @comment node-name, next, previous, up
3037 @section The radio button widget
3038
3039
3040 @subsection Description
3041
3042 @subsection Options
3043
3044 @defopt group
3045 @end defopt
3046
3047 @defopt label
3048 @end defopt
3049
3050 @subsection Signals
3051
3052 @subsection Functions
3053
3054 @deftypefun guint gtk_radio_menu_item_get_type (void)
3055 Returns the @code{GtkRadioMenuItem} type identifier.
3056 @end deftypefun
3057
3058 @deftypefun GtkWidget* gtk_radio_menu_item_new (GSList *@var{group})
3059 Create a new @code{GtkRadioMenuItem} object and initilize it with the 
3060 values in @var{group}. The new widget is returned as a pointer to a 
3061 @code{GtkWidget} object. @code{NULL} is returned on failure.
3062 @end deftypefun
3063
3064 @deftypefun GtkWidget* gtk_radio_menu_item_new_with_label (GSList *@var{group}, gchar *@var{label})
3065 @end deftypefun
3066
3067 @deftypefun GSList* gtk_radio_menu_item_group (GtkRadioMenuItem *@var{radio_menu_item})
3068 @end deftypefun
3069
3070 @gtkstdmacros{RadioMenuItem, RADIO_MENU_ITEM}
3071
3072
3073 @page
3074 @node GtkRange, GtkRuler, GtkRadioMenuItem, Widgets
3075 @comment node-name, next, previous, up
3076 @section The range widget
3077
3078 @subsection Description
3079
3080 @subsection Options
3081
3082 @subsection Signals
3083
3084 @subsection Functions
3085
3086 @deftypefun guint gtk_range_get_type (void)
3087 Returns the @code{GtkRange} type identifier.
3088 @end deftypefun
3089
3090 @deftypefun GtkAdjustment* gtk_range_get_adjustment (GtkRange *@var{range})
3091 @end deftypefun
3092
3093 @deftypefun void gtk_range_set_update_policy (GtkRange *@var{range}, GtkUpdatePolicy @var{policy})
3094 @end deftypefun
3095
3096 @deftypefun void gtk_range_set_adjustment (GtkRange *@var{range}, GtkAdjustment *@var{adjustment})
3097 @end deftypefun
3098
3099 @deftypefun void gtk_range_draw_background (GtkRange *@var{range})
3100 @end deftypefun
3101
3102 @deftypefun void gtk_range_draw_trough (GtkRange *@var{range})
3103 @end deftypefun
3104
3105 @deftypefun void gtk_range_draw_slider (GtkRange *@var{range})
3106 @end deftypefun
3107
3108 @deftypefun void gtk_range_draw_step_forw (GtkRange *@var{range})
3109 @end deftypefun
3110
3111 @deftypefun void gtk_range_draw_step_back (GtkRange *@var{range})
3112 @end deftypefun
3113
3114 @deftypefun void gtk_range_slider_update (GtkRange *@var{range})
3115 @end deftypefun
3116
3117 @deftypefun gint gtk_range_trough_click (GtkRange *@var{range}, gint @var{x}, gint @var{y})
3118 @end deftypefun
3119
3120 @deftypefun void gtk_range_default_hslider_update (GtkRange *@var{range})
3121 @end deftypefun
3122
3123 @deftypefun void gtk_range_default_vslider_update (GtkRange *@var{range})
3124 @end deftypefun
3125
3126 @deftypefun gint gtk_range_default_htrough_click (GtkRange *@var{range}, gint @var{x}, gint @var{y})
3127 @end deftypefun
3128
3129 @deftypefun gint gtk_range_default_vtrough_click (GtkRange *@var{range}, gint @var{x}, gint @var{y})
3130 @end deftypefun
3131
3132 @deftypefun void gtk_range_default_hmotion (GtkRange *@var{range}, gint @var{xdelta}, gint @var{ydelta})
3133 @end deftypefun
3134
3135 @deftypefun void gtk_range_default_vmotion (GtkRange *@var{range}, gint @var{xdelta}, gint @var{ydelta})
3136 @end deftypefun
3137
3138 @deftypefun gfloat gtk_range_calc_value (GtkRange *@var{ragne}, gint @var{position})
3139 @end deftypefun
3140
3141 @gtkstdmacros{Range, RANGE}
3142
3143
3144 @page
3145 @node GtkRuler, GtkScale, GtkRange, Widgets
3146 @comment node-name, next, previous, up
3147 @section The ruler widget
3148
3149 @subsection Description
3150
3151 @subsection Options
3152
3153 @defopt metric
3154 @end defopt
3155
3156 @defopt lower
3157 @end defopt
3158
3159 @defopt upper
3160 @end defopt
3161
3162 @defopt position
3163 @end defopt
3164
3165 @defopt max_size
3166 @end defopt
3167
3168 @subsection Signals
3169
3170 @subsection Functions
3171
3172 @deftypefun guint gtk_ruler_get_type (void)
3173 Returns the @code{GtkRuler} type identifier.
3174 @end deftypefun
3175
3176 @deftypefun void gtk_ruler_set_metric (GtkRuler *@var{ruler}, GtkMetricType @var{metric})
3177 @end deftypefun
3178
3179 @deftypefun void gtk_ruler_set_range (GtkRuler *@var{ruler}, gfloat @var{lower}, gfloat @var{upper}, gfloat @var{position}, gfloat @var{max_size})
3180 @end deftypefun
3181
3182 @deftypefun void gtk_ruler_draw_ticks (GtkRuler *@var{ruler})
3183 @end deftypefun
3184
3185 @deftypefun void gtk_ruler_draw_pos (GtkRuler *@var{ruler})
3186 @end deftypefun
3187
3188 @gtkstdmacros{Ruler, RULER}
3189
3190
3191 @page
3192 @node GtkScale, GtkScrollbar, GtkRuler, Widgets
3193 @comment node-name, next, previous, up
3194 @section The scale widget
3195
3196
3197 @subsection Description
3198
3199 @subsection Options
3200
3201 @defopt digits
3202 @end defopt
3203
3204 @defopt draw_value
3205 @end defopt
3206
3207 @defopt pos
3208 @end defopt
3209
3210 @subsection Signals
3211
3212 @subsection Functions
3213
3214 @deftypefun guint gtk_scale_get_type (void)
3215 Returns the @code{GtkScale} type identifier.
3216 @end deftypefun
3217
3218 @deftypefun void gtk_scale_set_digits (GtkScale *@var{scale}, gint @var{digits})
3219 @end deftypefun
3220
3221 @deftypefun void gtk_scale_set_draw_value (GtkScale *@var{scale}, gint @var{draw_value})
3222 @end deftypefun
3223
3224 @deftypefun void gtk_scale_set_value_pos (GtkScale *@var{scale}, gint @var{pos})
3225 @end deftypefun
3226
3227 @deftypefun gint gtk_scale_value_width (GtkScale *@var{scale})
3228 @end deftypefun
3229
3230 @deftypefun void gtk_scale_draw_value (GtkScale *@var{scale})
3231 @end deftypefun
3232
3233 @gtkstdmacros{Scale, SCALE}
3234
3235
3236 @page
3237 @node GtkScrollbar, GtkScrolledWindow, GtkScale, Widgets
3238 @comment node-name, next, previous, up
3239 @section The scrollbar widget
3240
3241
3242 @subsection Description
3243
3244 @subsection Options
3245
3246 @subsection Signals
3247
3248 @subsection Functions
3249
3250 @deftypefun guint gtk_scrollbar_get_type (void)a
3251 Returns the @code{GtkScrollbar} type identifier.
3252 @end deftypefun
3253
3254 @gtkstdmacros{Scrollbar, SCROLLBAR}
3255
3256
3257 @page
3258 @node GtkScrolledWindow, GtkSeparator, GtkScrollbar, Widgets
3259 @comment node-name, next, previous, up
3260 @section The scrolled window widget
3261
3262
3263 @subsection Description
3264
3265 @subsection Options
3266
3267 @subsection Signals
3268
3269 @subsection Functions
3270
3271 @deftypefun guint gtk_scrolled_window_get_type (void)
3272 Returns the @code{GtkScrolledWindow} type identifier.
3273 @end deftypefun
3274
3275 @deftypefun GtkWidget* gtk_scrolled_window_new (GtkAdjustment *@var{hadjustment}, GtkAdjustment *@var{vadjustment})
3276 Create a new @code{GtkScrolledWindow} object initilizing it with the values in
3277 @var{adjustment} and @var{adjustment}. The new widget is returned as a 
3278 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3279 @end deftypefun
3280
3281 @deftypefun GtkAdjustment* gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *@var{scrolled_window})
3282 @end deftypefun
3283
3284 @deftypefun GtkAdjustment* gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *@var{scrolled_window})
3285 @end deftypefun
3286
3287 @deftypefun void gtk_scrolled_window_set_policy (GtkScrolledWindow *@var{scrolled_window}, GtkPolicyType @var{hscrollbar_policy}, GtkPolicyType @var{vscrollbar_policy})
3288 @end deftypefun
3289
3290 @gtkstdmacros{ScrolledWindow, SCROLLED_WINDOW}
3291
3292
3293 @page
3294 @node GtkSeparator, GtkStatusbar, GtkScrolledWindow, Widgets
3295 @comment node-name, next, previous, up
3296 @section The separator widget
3297
3298
3299 @subsection Description
3300
3301 @subsection Options
3302
3303 @subsection Signals
3304
3305 @subsection Functions
3306
3307 @deftypefun guint gtk_separator_get_type (void)
3308 Returns the @code{GtkSeparator} type identifier.
3309 @end deftypefun
3310
3311 @gtkstdmacros{Separator, SEPARATOR}
3312
3313 @page
3314 @node GtkStatusbar, GtkTable, GtkSeparator, Widgets
3315 @comment node-name, next, previous, up
3316 @section The statusbar widget
3317
3318 @subsection Description
3319
3320 @subsection Options
3321
3322 @subsection Signals
3323
3324 @subsection Functions
3325
3326 @deftypefun guint gtk_statusbar_get_type (void)
3327 Returns the @code{GtkStatusbar} type identifier.
3328 @end deftypefun
3329
3330 @deftypefun GtkWidget* gtk_statusbar_new (void)
3331 Create a new @code{GtkStatusbar} object returning the new widget as a pointer
3332 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3333 @end deftypefun
3334
3335 @deftypefun gint gtk_statusbar_push (GtkStatusbar *@var{statusbar}, gchar *@var{text})
3336 @end deftypefun
3337
3338 @deftypefun void gtk_statusbar_pop (GtkStatusbar *@var{statusbar}, gint @var{ststusid})
3339 @end deftypefun
3340
3341 @gtkstdmacros{Statusbar, STATUSBAR}
3342
3343 @page
3344 @node GtkTable, GtkText, GtkStatusbar, Widgets
3345 @comment node-name, next, previous, up
3346 @section The table widget
3347
3348 @subsection Description
3349
3350 @subsection Options
3351
3352 @defopt rows
3353 @end defopt
3354
3355 @defopt columns
3356 @end defopt
3357
3358 @defopt homogeneous
3359 This option controls whether all child widgets in the @code{GtkTable} will
3360 be of the same size. The child widgets will be the size of the largest child.
3361 @end defopt
3362
3363 @subsection Signals
3364
3365 @subsection Functions
3366
3367 @deftypefun guint gtk_table_get_type (void)
3368 Returns the @code{GtkTable} type identifier.
3369 @end deftypefun
3370
3371 @deftypefun GtkWidget* gtk_table_new (gint @var{rows}, gint @var{columns}, gint @var{homogeneous})
3372 Create a new @code{GtkTable} object initilizing it with the values in 
3373 @var{rows}, @var{columns} and @var{homogeneous}. The new widget is returned 
3374 as a pointer to a @code{GtkWidget}. @code{NULL} is returned on failure.
3375 @end deftypefun
3376
3377 @deftypefun void gtk_table_attach (GtkTable *@var{table}, GtkWidget *@var{child}, gint @var{left_attach}, gint @var{right_attach}, gint @var{top_attach}, gint @var{bottom_attach}, gint @var{xoptions}, gint @var{yoptions}, gint @var{xpadding}, gint @var{ypadding})
3378 @end deftypefun
3379
3380 @deftypefun void gtk_table_attach_defaults (GtkTable *@var{table}, GtkWidget *@var{widget}, gint @var{left_attach}, gint @var{right_attach}, gint @var{top_attach}, gint @var{bottom_attach})
3381 @end deftypefun
3382
3383 @deftypefun void gtk_table_set_row_spacing (GtkTable *@var{table}, gint @var{row}, gint @var{spacing})
3384 @end deftypefun
3385
3386 @deftypefun void gtk_table_set_col_spacing (GtkTable *@var{table}, gint @var{col}, gint @var{spacing})
3387 @end deftypefun
3388
3389 @deftypefun void gtk_table_set_row_spacings (GtkTable *@var{table}, gint @var{spacing})
3390 @end deftypefun
3391
3392 @deftypefun void gtk_table_set_col_spacings (GtkTable *@var{table}, gint @var{spacing})
3393 @end deftypefun
3394
3395 @gtkstdmacros{Table, TABLE}
3396
3397
3398 @page
3399 @node GtkText, GtkToggleButton, GtkTable, Widgets
3400 @comment node-name, next, previous, up
3401 @section The text widget
3402
3403
3404 @subsection Description
3405
3406 @subsection Signals
3407
3408 @subsection Functions
3409
3410 @deftypefun guint gtk_text_get_type (void)
3411 Returns the @code{GtkText} type identifier.
3412 @end deftypefun
3413
3414 @deftypefun GtkWidget* gtk_text_new (GtkAdjustment *@var{hadj}, GtkAdjustment *@var{vadj});
3415 Create a new @code{GtkText} object initilizing it with the values in 
3416 @var{hadj} and @var{vadj}. The new widget is returned as a pointer to a 
3417 @code{GtkWidget}. @code{NULL} is returned on failure.
3418 @end deftypefun
3419
3420 @deftypefun void gtk_text_set_editable (GtkText *@var{text}, gint @var{editable})
3421 @end deftypefun
3422
3423 @deftypefun void gtk_text_set_adjustments (GtkText *@var{text}, GtkAdjustment *@var{hadj}, GtkAdjustment *@var{vadj})
3424 @end deftypefun
3425
3426 @deftypefun void gtk_text_set_point (GtkText *@var{text}, guint @var{index})
3427 @end deftypefun
3428
3429 @deftypefun guint gtk_text_get_point (GtkText *@var{text})
3430 @end deftypefun
3431
3432 @deftypefun guint gtk_text_get_length (GtkText *@var{text})
3433 @end deftypefun
3434
3435 @deftypefun void gtk_text_freeze (GtkText *@var{text})
3436 @end deftypefun
3437
3438 @deftypefun void gtk_text_thaw (GtkText *@var{text})
3439 @end deftypefun
3440
3441 @deftypefun void gtk_text_insert (GtkText *@var{text}, GdkFont *@var{font}, GdkColor *@var{fore}, GdkColor *@var{back}, char *@var{chars}, gint @var{length})
3442 @end deftypefun
3443
3444 @deftypefun gint gtk_text_forward_delete (GtkText *@var{text}, guint @var{nchars})
3445 @end deftypefun
3446
3447 @deftypefun gint gtk_text_backward_delete (GtkText *@var{text}, guint @var{nchars})
3448 @end deftypefun
3449
3450
3451 @gtkstdmacros{Text, TEXT}
3452
3453
3454 @page
3455 @node GtkToggleButton, GtkToolbar, GtkText, Widgets
3456 @comment node-name, next, previous, up
3457 @section The toggle button widget
3458
3459
3460 @subsection Description
3461
3462 @subsection Options
3463
3464 @defopt state
3465 @end defopt
3466
3467 @subsection Signals
3468
3469 @deftypefn Signal void GtkToggleButton::toggled (GtkToggleButton *@var{toggle_button})
3470 @end deftypefn
3471
3472 @subsection Functions
3473
3474 @deftypefun guint gtk_toggle_button_get_type (void)
3475 Returns the @code{GtkToggleButton} type identifier.
3476 @end deftypefun
3477
3478 @deftypefun GtkWidget* gtk_toggle_button_new (void)
3479 Create a new @code{GtkToggleButton} object returning the new widget as a 
3480 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3481 @end deftypefun
3482
3483 @deftypefun GtkWidget* gtk_toggle_button_new_with_label (gchar *@var{label})
3484 Create a new @code{GtkToggleButton} object initilizing it with the values in
3485 @var{label}. The new widget is returned as a pointer to a @code{GtkWidget} 
3486 object. @code{NULL} is returned on failure.
3487 @end deftypefun
3488
3489 @deftypefun void gtk_toggle_button_set_mode (GtkToggleButton *@var{toggle_button}, gint @var{draw_indicator})
3490 @end deftypefun
3491
3492 @deftypefun void gtk_toggle_button_set_state (GtkToggleButton *@var{toggle_button}, gint @var{state})
3493 @end deftypefun
3494
3495 @deftypefun void gtk_toggle_button_toggled (GtkToggleButotn *@var{toggle_button})
3496 @end deftypefun
3497
3498 @gtkstdmacros{ToggleButton, TOGGLE_BUTTON}
3499
3500
3501 @page 
3502 @node GtkToolbar, GtkTooltips, GtkToggleButton, Widgets
3503 @comment node-name, next, previous, up
3504 @section The tool bar widget
3505
3506 @subsection Description
3507
3508 @subsection Options
3509
3510 @defopt orientation
3511 @itemize @bullet
3512 @item GTK_ORIENTATION_HORIZONTAL
3513
3514 @item GTK_ORIENTATION_VERTICAL
3515 @end itemize
3516 @end defopt
3517
3518 @defopt style
3519 @itemize @bullet
3520 @item GTK_TOOLBAR_ICONS
3521 @item GTK_TOOLBAR_TEXT
3522 @item GTK_TOOLBAR_BOTH
3523 @end itemize
3524 @end defopt
3525
3526 @defopt space_size
3527 @end defopt
3528
3529 @subsection Signals
3530
3531 @subsection Functions
3532
3533 @deftypefun guint gtk_toolbar_get_type (void)
3534 Returns the @code{GtkToolbar} type identifier.
3535 @end deftypefun
3536
3537 @deftypefun GtkWidget* gtk_toolbar_new (GtkOrientation @var{orientation}, GtkToolbarStyle @var{style})
3538 Create a new @code{GtkToolbar} object initilizing it with the values
3539 @var{orientation} and @var{style}. @code{NULL} is returned on failure.
3540 @end deftypefun
3541
3542 @deftypefun void gtk_toolbar_append_item (GtkToolbar *@var{toolbar}, char *@var{text}, char *@var{tooltip_text}, GtkPixmap *@var{icon}, GtkSignalFunc @var{callback}, gpointer @var{user_data})
3543 @end deftypefun
3544
3545 @deftypefun void gtk_toolbar_prepend_item (GtkToolbar *@var{toolbar}, char *@var{text}, char *@var{tooltip_text}, GtkPixmap *@var{icon}, GtkSignalFunc @var{callback}, gpointer @var{user_data})
3546 @end deftypefun
3547
3548 @deftypefun void gtk_toolbar_insert_item (GtkToolbar *@var{toolbar}, char *@var{text}, char *@var{tooltip_text}, GtkPixmap *@var{icon}, GtkSignalFunc @var{callback}, gpointer @var{user_data}, gint @var{position})
3549 @end deftypefun
3550
3551 @deftypefun void gtk_toolbar_append_space (GtkToolbar *@var{toolbar})
3552 @end deftypefun
3553
3554 @deftypefun void gtk_toolbar_prepend_space (GtkToolbar *@var{toolbar})
3555 @end deftypefun
3556
3557 @deftypefun void gtk_toolbar_insert_space (GtkToolbar *@var{toolbar}, gint @var{position})
3558 @end deftypefun
3559
3560 @deftypefun void gtk_toolbar_set_orientation (GtkToolbar *@var{toolbar}, GtkOrientation @var{orientation})
3561 @end deftypefun
3562
3563 @deftypefun void gtk_toolbar_set_style (GtkToolbar *@var{toolbar}, GtkToolbarStyle @var{style})
3564 Set the @var{style} of the @var{toolbar} to @var{style}.
3565 @end deftypefun
3566
3567 @deftypefun void gtk_toolbar_set_space_size (GtkToolbar *@var{toolbar}, gint @var{space_size})
3568 @end deftypefun
3569
3570 @deftypefun void gtk_toolbar_set_tooltips (GtkToolbar *@var{toolbar}, gint @var{enable})
3571 @end deftypefun
3572
3573
3574 @gtkstdmacros{Toolbar, TOOLBAR}
3575
3576
3577 @page
3578 @node GtkTooltips, GtkTree, GtkToolbar, Widgets
3579 @comment node-name, next, previous, up
3580 @section The tool tips widget
3581
3582 @subsection Description
3583
3584 @subsection Options
3585
3586 @subsection Signals
3587
3588 @subsection Functions
3589
3590 @deftypefun GtkTooltips* gtk_tooltips_new (void)
3591 Create a new @code{GtkTooltips} object returning the new widget as a 
3592 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3593 @end deftypefun
3594
3595 @deftypefun GtkTooltips* gtk_tooltips_ref (GtkTooltips *@var{tooltips})
3596 @end deftypefun
3597
3598 @deftypefun void gtk_tooltips_unref (GtkTooltips *@var{tooltips})
3599 @end deftypefun
3600
3601 @deftypefun void gtk_tooltips_free_string (gpointer @var{data}, gpointer @var{user_data})
3602 @end deftypefun
3603
3604 @deftypefun void gtk_tooltips_enable (GtkTooltips *@var{tooltips})
3605 @end deftypefun
3606
3607 @deftypefun void gtk_tooltips_disable (GtkTooltips *@var{tooltips})
3608 @end deftypefun
3609
3610 @deftypefun void gtk_tooltips_set_delay (GtkTooltips *@var{tooltips}, GtkWidget *@var{widget}, gchar *@var{tips_text})
3611 @end deftypefun
3612
3613 @deftypefun void gtk_tooltips_set_colors (GtkTooltips *@var{tooltips}, GdkColor *@var{background}, GdkColor *@var{foreground})
3614 @end deftypefun
3615
3616
3617 @gtkstdmacros{Tooltips, TOOLTIPS}
3618
3619
3620 @page
3621 @node GtkTree, GtkTreeItem, GtkTooltips, Widgets
3622 @comment node-name, next, previous, up
3623 @section The tree widget
3624
3625
3626 @subsection Description
3627
3628 @subsection Options
3629
3630 @subsection Signals
3631
3632 @subsection Functions
3633
3634 @deftypefun guint gtk_tree_get_type (void)
3635 Returns the @code{GtkTree} type identifier.
3636 @end deftypefun
3637
3638 @deftypefun GtkWidget* gtk_tree_new (void)
3639 Create a new @code{GtkTree} object returning the new widget as a pointer to
3640 a @code{GtkWidget} object. @code{NULL} is returned on failure.
3641 @end deftypefun
3642
3643 @deftypefun void gtk_tree_append (GtkTree *@var{tree}, GtkWidget *@var{child})
3644 @end deftypefun
3645
3646 @deftypefun void gtk_tree_prepend (GtkTree *@var{tree}, GtkWidget *@var{child})
3647 @end deftypefun
3648
3649 @deftypefun void gtk_tree_insert (GtkTree *@var{tree}, GtkWidget *@var{child}, gint @var{position})
3650 @end deftypefun
3651
3652 @deftypefun gint gtk_tree_child_position (GtkTree *@var{tree}, GtkWidget *@var{child})
3653 @end deftypefun
3654
3655 @deftypefun void gtk_tree_clear_items (GtkTree *@var{tree}, gint @var{start}, gint @var{end})
3656 @end deftypefun
3657
3658 @deftypefun void gtk_tree_remove_items (GtkTree *@var{tree}, GList *@var{items})
3659 @end deftypefun
3660
3661 @deftypefun void gtk_tree_select_child (GtkTree *@var{tree}, GtkWidget *@var{child})
3662 @end deftypefun
3663
3664 @deftypefun void gtk_tree_select_item (GtkTree *@var{tree}, gint @var{item})
3665 @end deftypefun
3666
3667 @deftypefun void gtk_tree_unselect_child (GtkTree *@var{tree}, GtkWidget *@var{child})
3668 @end deftypefun
3669
3670 @deftypefun void gtk_tree_unselect_item (GtkTree *@var{tree}, gint @var{item})
3671 @end deftypefun
3672
3673 @deftypefun void gtk_tree_set_selection_mode (GtkTree *@var{tree}, GtkSelectionMode @var{mode})
3674 @end deftypefun
3675
3676 @deftypefun void gtk_tree_set_view_mode (GtkTree *@var{tree}, GtkTreeViewMode @var{mode})
3677 @end deftypefun
3678
3679 @deftypefun void gtk_tree_set_view_lines (GtkTree *@var{tree}, guint @var{flag})
3680 @end deftypefun
3681
3682
3683 @gtkstdmacros{Tree, TREE}
3684
3685
3686 @page
3687 @node GtkTreeItem, GtkVBox, GtkTree, Widgets
3688 @comment node-name, next, previous, up
3689 @section The tree item widget
3690
3691
3692 @subsection Description
3693
3694 @subsection Options
3695
3696 @subsection Signals
3697
3698 @subsection Functions
3699
3700 @deftypefun guint gtk_tree_item_get_type (void)
3701 Returns the @code{GtkTreeItem} type identifier.
3702 @end deftypefun
3703
3704 @deftypefun GtkWidget* gtk_tree_item_new (void)
3705 Create a new @code{GtkTreeItem} object returning the new widget as a 
3706 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3707 @end deftypefun
3708
3709 @deftypefun GtkWidget* gtk_tree_item_new_with_label (gchar *@var{label})
3710 Create a new @code{GtkTreeItem} object initilizing it with the values in
3711 @var{label}. The new widget is returned as a pointer to a @code{GtkWidget}
3712 object. @code{NULL} is returned on failure.
3713 @end deftypefun
3714
3715 @deftypefun void gtk_tree_item_set_subtree (GtkTreeItem *@var{tree_item}, GtkWidget *@var{subtree})
3716 @end deftypefun
3717
3718 @deftypefun void gtk_tree_item_select (GtkTreeItem *@var{tree_item})
3719 @end deftypefun
3720
3721 @deftypefun void gtk_tree_item_deselect (GtkTreeItem *@var{tree_item})
3722 @end deftypefun
3723
3724 @deftypefun void gtk_tree_item_expand (GtkTreeItem *@var{tree_item})
3725 @end deftypefun
3726
3727 @deftypefun void gtk_tree_item_collapse (GtkTreeItem *@var{tree_item})
3728 @end deftypefun
3729
3730 @deftypefun void gtk_tree_item_remove_subtree (GtkTreeItem *@var{item})
3731 @end deftypefun
3732
3733
3734 @gtkstdmacros{TreeItem, TREE_ITEM}
3735
3736 @page
3737 @node GtkVBox, GtkVButtonBox, GtkTreeItem, Widgets
3738 @comment node-name, next, previous, up
3739 @section The vertical box widget
3740
3741
3742 @subsection Description
3743
3744 @subsection Options
3745
3746 @defopt homogeneous
3747 This option controls whether each object in the box has the same size. In the
3748 case of the @code{GtkVBox}, this refers to the height. If this option is set
3749 then the @var{expand} option to the @code{gtk_box_pack} (@pxref{GtkBox}) 
3750 routines is always turned on.
3751 @end defopt
3752
3753 @defopt spacing
3754 This option sets the amount of space that is added between the objects packed
3755 into this @code{GtkVBox} object.
3756 @end defopt
3757
3758
3759 @subsection Signals
3760 This widget does not define any new signals.
3761
3762 @subsection Functions
3763
3764 @deftypefun guint gtk_vbox_get_type (void)
3765 Returns the @code{GtkVBox} type identifier.
3766 @end deftypefun
3767
3768 @deftypefun GtkWidget* gtk_vbox_new (gint @var{homogeneous}, gint @var{spacing})
3769 Create a new @code{GtkVBox} object initilizing it with the values in 
3770 @var{homogeneous} and @var{spacing}. The new widget is returned as a 
3771 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3772 @end deftypefun
3773
3774 @gtkstdmacros{VBox, VBOX}
3775
3776 @page
3777 @node GtkVButtonBox, GtkViewport, GtkVBox, Widgets
3778 @comment node-name, next, previous, up
3779 @section The vertical button box widget
3780
3781
3782 @subsection Description
3783
3784 @subsection Options
3785 @defopt spacing
3786 @end defopt
3787
3788 @defopt layout
3789 @end defopt
3790
3791 @subsection Signals
3792
3793 @subsection Functions
3794
3795 @deftypefun guint gtk_vbutton_box_get_type (void)
3796 Returns the @code{GtkVButtonBox} type identifier.
3797 @end deftypefun
3798
3799 @deftypefun GtkWidget* gtk_vbutton_box_new (void)
3800 Create a new @code{GtkVButtonBox} object returning the new widget as a
3801 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3802 @end deftypefun
3803
3804 @deftypefun void gtk_vbutton_box_set_spacing_default (gint @var{spacing})
3805 @end deftypefun
3806
3807 @deftypefun void gtk_vbutton_box_set_layout_default (gint @var{layout})
3808 @end deftypefun
3809
3810 @deftypefun gint gtk_vbutton_box_get_spacing_default (void)
3811 @end deftypefun
3812
3813 @deftypefun gint gtk_vbutton_box_get_layout_default (void)
3814 @end deftypefun
3815
3816 @gtkstdmacros{VButtonBox, VBUTTON_BOX}
3817
3818
3819 @page
3820 @node GtkViewport, GtkVPaned, GtkVButtonBox, Widgets
3821 @comment node-name, next, previous, up
3822 @section The viewport widget
3823
3824
3825 @subsection Description
3826
3827 @subsection Signals
3828
3829 @subsection Functions
3830
3831 @deftypefun guint gtk_viewport_get_type (void)
3832 Returns the @code{GtkViewport} type identifier.
3833 @end deftypefun
3834
3835 @deftypefun GtkWidget* gtk_viewport_new (GtkAdjustment *@var{hadjustment}, GtkAdjustment *@var{vadjustment})
3836 @end deftypefun
3837
3838 @deftypefun GtkAdjustment* gtk_viewport_get_hadjustment (GtkViewport *@var{viewport})
3839 @end deftypefun
3840
3841 @deftypefun GtkAdjustment* gtk_viewport_get_vadjustment (GtkViewport *@var{viewport})
3842 @end deftypefun
3843
3844 @deftypefun void gtk_viewport_set_hadjustment (GtkViewport *@var{viewport}, GtkAdjustment *@var{adjustment})
3845 @end deftypefun
3846
3847 @deftypefun void gtk_viewport_set_vadjustment (GtkViewport *@var{viewport}, GtkAdjustment *@var{adjustment})
3848 @end deftypefun
3849
3850 @deftypefun void gtk_viewport_set_shadow_type (GtkViewport *@var{viewport}, GtkShadowType @var{type})
3851 @end deftypefun
3852
3853 @gtkstdmacros{Viewport, VIEWPORT}
3854
3855 @page 
3856 @node GtkVPaned, GtkVRuler, GtkViewport, Widgets
3857 @comment node-name, next, previous, up
3858 @section The vertical paned widget
3859
3860 @subsection Description
3861
3862 @subsection Options
3863
3864 @subsection Signals
3865
3866 @subsection Functions
3867
3868 @deftypefun guint gtk_vpaned_get_type (void)
3869 Returns the @code{GtkVPaned} type identifier.
3870 @end deftypefun
3871
3872 @deftypefun GtkWidget* gtk_vpaned_new (void)
3873 Create a new @code{GtkVPaned} object returning the new widget as a pointer
3874 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3875 @end deftypefun
3876
3877 @gtkstdmacros{VPaned, VPANED}
3878
3879 @page
3880 @node GtkVRuler, GtkVScale, GtkVPaned, Widgets
3881 @comment node-name, next, previous, up
3882 @section The vertical ruler widget
3883
3884
3885 @subsection Description
3886
3887 @subsection Options
3888
3889 @subsection Signals
3890
3891 @subsection Functions
3892
3893 @deftypefun guint gtk_vruler_get_type (void)
3894 Returns the @code{GtkVRuler} type identifier.
3895 @end deftypefun
3896
3897 @deftypefun GtkWidget* gtk_vruler_new (void)
3898 Create a new @code{GtkVRuler} object returning the new widget as a pointer to 
3899 a @code{GtkWidget} object. @code{NULL} is returned on failure.
3900 @end deftypefun
3901
3902 @gtkstdmacros{VRuler, VRULER}
3903
3904
3905 @page
3906 @node GtkVScale, GtkVScrollbar, GtkVRuler, Widgets
3907 @comment node-name, next, previous, up
3908 @section The vertical ruler widget
3909
3910
3911 @subsection Description
3912
3913 @subsection Options
3914
3915 @subsection Signals
3916
3917 @subsection Functions
3918
3919 @deftypefun guint gtk_vscale_get_type (void)
3920 Returns the @code{GtkVScale} type identifier.
3921 @end deftypefun
3922
3923 @deftypefun GtkWidget* gtk_vscale_new (GtkAdjustment *@var{adjustment})
3924 Create a new @code{GtkVScale} object returning the new widget as a pointer
3925 to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3926 @end deftypefun
3927
3928 @gtkstdmacros{VScale, VSCALE}
3929
3930
3931 @page
3932 @node GtkVScrollbar, GtkVSeparator, GtkVScale, Widgets
3933 @comment node-name, next, previous, up
3934 @section The vertical scrollbar widget
3935
3936
3937 @subsection Description
3938
3939 @subsection Options
3940
3941 @subsection Signals
3942
3943 @subsection Functions
3944
3945 @deftypefun guint gtk_vscrollbar_get_type (void)
3946 Returns the @code{GtkVScrollbar} type identifier.
3947 @end deftypefun
3948
3949 @deftypefun GtkWidget* gtk_vscrollbar_new (GtkAdjustment *@var{adjustment})
3950 Create a new @code{GtkVScrollbar} object initilizing it with the values in
3951 @var{adjusment}. The new widget is returned as a pointer to a @code{GtkWidget}
3952 object. @code{NULL} is returned on failure.
3953 @end deftypefun
3954
3955 @gtkstdmacros{VScrollbar, VSCROLLBAR}
3956
3957
3958 @page
3959 @node GtkVSeparator, GtkWidget, GtkVScrollbar, Widgets
3960 @comment node-name, next, previous, up
3961 @section The vertical separator widget
3962
3963
3964 @subsection Description
3965
3966 @subsection Signals
3967
3968 @subsection Functions
3969
3970 @deftypefun guint gtk_vseparator_get_type (void)
3971 Returns the @code{GtkVSeparator} type identifier.
3972 @end deftypefun
3973
3974 @deftypefun GtkWidget* gtk_vseparator_new (void)
3975 Create a new @code{GtkVSeparator} object and return the new widget as a 
3976 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
3977 @end deftypefun
3978
3979 @gtkstdmacros{VSeparator, VSEPARATOR}
3980
3981
3982 @page
3983 @node GtkWidget, GtkWindow, GtkVSeparator, Widgets
3984 @comment node-name, next, previous, up
3985 @section The base widget
3986
3987
3988 @subsection Description
3989
3990 @subsection Signals
3991
3992 @deftypefn Signal void GtkWidget::show (GtkWidget *@var{widget})
3993 @end deftypefn
3994
3995 @deftypefn Signal void GtkWidget::hide (GtkWidget *@var{widget})
3996 @end deftypefn
3997
3998 @deftypefn Signal void GtkWidget::map (GtkWidget *@var{widget})
3999 @end deftypefn
4000
4001 @deftypefn Signal void GtkWidget::unmap (GtkWidget *@var{widget})
4002 @end deftypefn
4003
4004 @deftypefn Signal void GtkWidget::realize (GtkWidget *@var{widget})
4005 @end deftypefn
4006
4007 @deftypefn Signal void GtkWidget::unrealize (GtkWidget *@var{widget})
4008 @end deftypefn
4009
4010 @deftypefn Signal void GtkWidget::draw (GtkWidget *@var{widget}, GdkRectangle *@var{area})
4011 @end deftypefn
4012
4013 @deftypefn Signal void GtkWidget::draw_focus (GtkWidget *@var{widget})
4014 @end deftypefn
4015
4016 @deftypefn Signal void GtkWidget::draw_default (GtkWidget *@var{widget})
4017 @end deftypefn
4018
4019 @deftypefn Signal void GtkWidget::size_request (GtkWidget *@var{widget}, GtkRequisition *@var{requisition})
4020 @end deftypefn
4021
4022 @deftypefn Signal void GtkWidget::size_allocate (GtkWidget *@var{widget}, GtkAllocation *@var{allocation})
4023 @end deftypefn
4024
4025 @deftypefn Signal void GtkWidget::state_changed (GtkWidget *@var{widget})
4026 @end deftypefn
4027
4028 @deftypefn Signal gint GtkWidget::install_accelerator (GtkWidget *@var{widget}, gchar *@var{signal_name}, gchar @var{key}, guint8 @var{modifiers})
4029 @end deftypefn
4030
4031 @deftypefn Signal void GtkWidget::remove_accelerator (GtkWidget *@var{widget}, gchar *@var{signal_name})
4032 @end deftypefn
4033
4034 @deftypefn Signal gint GtkWidget::event (GtkWidget *@var{widget}, GdkEvent *@var{event})
4035 @end deftypefn
4036
4037 @deftypefn Signal gint GtkWidget::button_press_event (GtkWidget *@var{widget}, GdkEventButton *@var{event})
4038 @end deftypefn
4039
4040 @deftypefn Signal gint GtkWidget::button_release_event (GtkWidget *@var{widget}, GdkEventButton *@var{event})
4041 @end deftypefn
4042
4043 @deftypefn Signal gint GtkWidget::motion_notify_event (GtkWidget *@var{widget}, GdkEventMotion *@var{event})
4044 @end deftypefn
4045
4046 @deftypefn Signal gint GtkWidget::delete_event (GtkWidget *@var{widget}, GdkEventAny *@var{event})
4047 @end deftypefn
4048
4049 @deftypefn Signal gint GtkWidget::destroy_event (GtkWidget *@var{widget}, GdkEventAny *@var{event})
4050 @end deftypefn
4051
4052 @deftypefn Signal gint GtkWidget::expose_event (GtkWidget *@var{widget}, GdkEventExpose *@var{event})
4053 @end deftypefn
4054
4055 @deftypefn Signal gint GtkWidget::key_press_event (GtkWidget *@var{widget}, GdkEventKey *@var{event})
4056 @end deftypefn
4057
4058 @deftypefn Signal gint GtkWidget::key_release_event (GtkWidget *@var{widget}, GdkEventKey *@var{event})
4059 @end deftypefn
4060
4061 @deftypefn Signal gint GtkWidget::enter_notify_event (GtkWidget *@var{widget}, GdkEventCrossing *@var{event})
4062 @end deftypefn
4063
4064 @deftypefn Signal gint GtkWidget::leave_notify_event (GtkWidget *@var{widget}, GdkEventCrossing *@var{event})
4065 @end deftypefn
4066
4067 @deftypefn Signal gint GtkWidget::configure_event (GtkWidget *@var{widget}, GdkEventConfigure *@var{event})
4068 @end deftypefn
4069
4070 @deftypefn Signal gint GtkWidget::focus_in_event (GtkWidget *@var{widget}, GdkEventFocus *@var{event})
4071 @end deftypefn
4072
4073 @deftypefn Signal gint GtkWidget::focus_out_event (GtkWidget *@var{widget}, GdkEventFocus *@var{event})
4074 @end deftypefn
4075
4076 @deftypefn Signal gint GtkWidget::map_event (GtkWidget *@var{widget}, GdkEventAny *@var{event})
4077 @end deftypefn
4078
4079 @deftypefn Signal gint GtkWidget::unmap_event (GtkWidget *@var{widget}, GdkEventAny *@var{event})
4080 @end deftypefn
4081
4082 @deftypefn Signal gint GtkWidget::property_notify_event (GtkWidget *@var{widget}, GdkEventProperty *@var{event})
4083 @end deftypefn
4084
4085 @deftypefn Signal gint GtkWidget::selection_clear_event (GtkWidget *@var{widget}, GdkEventSelection *@var{event})
4086 @end deftypefn
4087
4088 @deftypefn Signal gint GtkWidget::selection_request_event (GtkWidget *@var{widget}, GdkEventSelection *@var{event})
4089 @end deftypefn
4090
4091 @deftypefn Signal gint GtkWidget::selection_notify_event (GtkWidget *@var{widget}, GdkEventSelection *@var{event})
4092 @end deftypefn
4093
4094 @deftypefn Signal gint GtkWidget::drop_event (GtkWidget *@var{widget}, GdkEventDrop *@var{event})
4095 @end deftypefn
4096
4097 @deftypefn Signal gint GtkWidget::drag_begin_event (GtkWidget *@var{widget}, GdkEventDragBegin *@var{event})
4098 @end deftypefn
4099
4100 @deftypefn Signal gint GtkWidget::other_event (GtkWidget *@var{widget}, GdkEventOther *@var{event})
4101 @end deftypefn
4102
4103 @subsection Functions
4104
4105 @deftypefun guint gtk_widget_get_type (void)
4106 Returns the @code{GtkWidget} type identifier.
4107 @end deftypefun
4108
4109 @deftypefun void gtk_widget_class_init (GtkWidgetClass *@var{class})
4110 @end deftypefun
4111
4112 @deftypefun void gtk_widget_init (GtkWidget *@var{widget})
4113 @end deftypefun
4114
4115 @deftypefun void gtk_widget_destroy (GtkWidget *@var{widget})
4116 @end deftypefun
4117
4118 @deftypefun void gtk_widget_show (GtkWidget *@var{widget})
4119 @end deftypefun
4120
4121 @deftypefun void gtk_widget_hide (GtkWidget *@var{widget})
4122 @end deftypefun
4123
4124 @deftypefun void gtk_widget_map (GtkWidget *@var{widget})
4125 @end deftypefun
4126
4127 @deftypefun void gtk_widget_unmap (GtkWidget *@var{widget})
4128 @end deftypefun
4129
4130 @deftypefun void gtk_widget_realize (GtkWidget *@var{widget})
4131 @end deftypefun
4132
4133 @deftypefun void gtk_widget_unrealize (GtkWidget *@var{widget})
4134 @end deftypefun
4135
4136 @deftypefun void gtk_widget_draw (GtkWidget *@var{widget}, GdkRectangle *@var{area})
4137 @end deftypefun
4138
4139 @deftypefun void gtk_widget_draw_focus (GtkWidget *@var{widget})
4140 @end deftypefun
4141
4142 @deftypefun void gtk_widget_draw_children (GtkWidget *@var{widget})
4143 @end deftypefun
4144
4145 @deftypefun void gtk_widget_size_request (GtkWidget *@var{widget}, GtkRequisition *@var{requisition})
4146 @end deftypefun
4147
4148 @deftypefun void gtk_widget_size_allocate (GtkWidget *@var{widget}, GtkAllocation *@var{allocation})
4149 @end deftypefun
4150
4151 @deftypefun void gtk_widget_install_accelerator (GtkWidget *@var{widget}, GtkAcceleratorTable *@var{table}, gchar *@var{signal_name}, gchar @var{key}, guint8 @var{modifiers})
4152 @end deftypefun
4153
4154 @deftypefun void gtk_widget_remove_accelerator (GtkWidget *@var{widget}, GtkAcceleratorTable *@var{table}, gchar *@var{signal_name})
4155 @end deftypefun
4156
4157 @deftypefun gint gtk_widget_event (GtkWidget *@var{widget}, GdkEvent *@var{event})
4158 @end deftypefun
4159
4160 @deftypefun void gtk_widget_reparent (GtkWidget *@var{widget}, GtkWidget *@var{new_parent})
4161 @end deftypefun
4162
4163 @deftypefun void gtk_widget_popup (GtkWidget *@var{widget}, gint @var{x}, gint @var{y})
4164 @end deftypefun
4165
4166 @deftypefun gint gtk_widget_intersect (GtkWidget *@var{widget}, GdkRectangle *@var{area}, GdkRectangle *@var{intersection})
4167 @end deftypefun
4168
4169 @deftypefun void gtk_widget_grab_focus (GtkWidget *@var{widget})
4170 @end deftypefun
4171
4172 @deftypefun void gtk_widget_grab_default (GtkWidget *@var{widget})
4173 @end deftypefun
4174
4175 @deftypefun void gtk_widget_restore_state (GtkWidget *@var{widget})
4176 @end deftypefun
4177
4178 @deftypefun void gtk_widget_set_name (GtkWidget *@var{widget}, gchar *@var{name})
4179 @end deftypefun
4180
4181 @deftypefun void gtk_widget_set_state (GtkWidget *@var{widget}, GtkStateType @var{state})
4182 @end deftypefun
4183
4184 @deftypefun void gtk_widget_set_sensitive (GtkWidget *@var{widget}, gint sensitive)
4185 @end deftypefun
4186
4187 @deftypefun void gtk_widget_set_parent (GtkWidget *@var{widget}, GtkWidget *@var{parent})
4188 @end deftypefun
4189
4190 @deftypefun void gtk_widget_set_style (GtkWidget *@var{widget}, GtkStyle *@var{style})
4191 @end deftypefun
4192
4193 @deftypefun void gtk_widget_set_uposition (GtkWidget *@var{widget}, gint @var{x}, gint @var{y})
4194 @end deftypefun
4195
4196 @deftypefun void gtk_widget_set_usize (GtkWidget *@var{widget}, gint @var{width}, gint @var{height})
4197 @end deftypefun
4198
4199 @deftypefun GtkWidget* gtk_widget_get_toplevel (GtkWidget *@var{widget})
4200 @end deftypefun
4201
4202 @deftypefun GtkWidget* gtk_widget_get_ancestor (GtkWidget *@var{widget}, gint @var{type})
4203 @end deftypefun
4204
4205 @deftypefun GdkColormap* gtk_widget_get_colormap (GtkWidget *@var{widget})
4206 @end deftypefun
4207
4208 @deftypefun GdkVisual* gtk_widget_get_visual (GtkWidget *@var{visual})
4209 @end deftypefun
4210
4211 @deftypefun GtkStyle* gtk_widget_get_style (GtkWidget *@var{style})
4212 @end deftypefun
4213
4214 @gtkstdmacros{Widget, WIDGET}
4215
4216
4217 @page
4218 @node GtkWindow, , GtkWidget, Widgets
4219 @comment node-name, next, previous, up
4220 @section The window widget
4221
4222
4223 @subsection Description
4224
4225 @subsection Options
4226
4227 @defopt type
4228 The @var{type} options specify how this widget will interact with the 
4229 window manager. Currently the following types and the effect they have
4230 on the window to window manager interaction is as follows.
4231 @itemize @bullet
4232
4233 @item
4234 @code{GTK_WINDOW_TOPLEVEL}
4235 @itemize @bullet
4236 @item
4237 The option @code{GTK_WINDOW_TOPLEVEL} is usually used for the main application
4238 window that will remain for the entire application run.
4239 @end itemize
4240 @item
4241 @code{GTK_WINDOW_DIALOG}
4242 @itemize @bullet
4243 @item
4244 The option @code{GTK_WINDOW_DIALOG} is usually used for transient
4245 windows. These windows will open up, gather some input or provide some 
4246 application specific updates, then close. The window manager is free not
4247 to provide all the 'normal' window functions to this window.
4248 @end itemize
4249 @item
4250 @code{GTK_WINDOW_POPUP}
4251 @itemize @bullet
4252 @item
4253 The option @code{GTK_WINDOW_POPUP} is usually used for transient windows.
4254 These windows are typically used for when no user interaction is required,
4255 to notify the user of some condition. Other uses for these types of windows
4256 are for 'about windows', startup windows and the like. Typically the window
4257 manager will @strong{not} provide the usual widgets that surround the 
4258 window. At the most all that will be provided is a border. Also note that
4259 windows that set this @var{type} will not be in any window list of the window
4260 manager. Though this window will @strong{not} get the kill and close widgets
4261 of the window manager they still can recieve said events and should be 
4262 taken into account.
4263 @end itemize
4264 @end itemize
4265 @end defopt
4266
4267 @defopt title
4268 The @var{title} option will set the title of the window in the window manager.
4269 @strong{Note:} On windows that have the @var{type} option set to 
4270 @code{GTK_WINDOW_POPUP} there is a strong possiblity that this will text
4271 will not be seen.
4272 @end defopt
4273
4274 @defopt position
4275 The @var{position} option will determine where the window will be displayed
4276 when it is finally drawn to the screen. Currently the following positions 
4277  and the effect they have on window placement can be specified.
4278
4279 @itemize @bullet
4280
4281 @item
4282 @code{GTK_WIN_POS_NONE}
4283 @itemize @bullet
4284 @item
4285 This @var{position} type will allow the window manager full freedom, depending
4286 on the current settings in the window manager. As to where the window will
4287 be placed.
4288 @end itemize
4289 @item
4290 @code{GTK_WIN_POS_CENTER}
4291 @itemize @bullet
4292 @item
4293 This @var{position} option will cause the window to center itself on the 
4294 the screen. This option setting will take into account the @var{virtual screen}
4295 size when calculating the center. This is @strong{not} the same as the 
4296 @var{virtual desktop} setting of many window managers. It will center itself
4297 on the current @var{virtual desktop}.
4298 @end itemize
4299 @item
4300 @code{GTK_WIN_POS_MOUSE}
4301 @itemize @bullet
4302 This @var{position} option will cause the window to center itself under the 
4303 mouse pointers' current location. Typical uses for this setting is in 
4304 warning/error/informational dialogs where user interaction is desired.
4305 @end itemize
4306 @end itemize
4307 @end defopt
4308
4309
4310 @subsection Signals
4311
4312 @deftypefn Signal void GtkWindow::move_resize (GtkWindow *@var{window}, gint *@var{x}, gint *@var{y}, gint @var{width}, gint @var{height})
4313 @end deftypefn
4314
4315 @deftypefn Signal void GtkWindow::set_focus (GtkWindow *@var{window}, GtkWidget *@var{focus})
4316 @end deftypefn
4317
4318 @subsection Functions
4319
4320 @deftypefun guint gtk_window_get_type (void)
4321 Returns the @code{GtkWindow} type identifier.
4322 @end deftypefun
4323
4324 @deftypefun GtkWidget* gtk_window_new (GtkWindowType @var{type})
4325 Create a new @code{GtkWindow} object. The new widget is returned as a 
4326 pointer to a @code{GtkWidget} object. @code{NULL} is returned on failure.
4327 The @var{type} can be one of @code{GTK_WINDOW_TOPLEVEL}, 
4328 @code{GTK_WINDOW_DIALOG} or, @code{GTK_WINDOW_POPUP}. The @var{type} 
4329 value determines how this widget will interact with the window manager.
4330 @end deftypefun
4331
4332 @deftypefun void gtk_window_set_title (GtkWindow *@var{window}, gchar *@var{title})
4333 Set the title of this window to the text in the @var{title} argument. It is 
4334 important to not set the fields of the @code{GtkWindow} structure directly.
4335 @end deftypefun
4336
4337 @deftypefun void gtk_window_set_focus (GtkWindow *@var{window}, GtkWidget *@var{focus})
4338 @end deftypefun
4339
4340 @deftypefun void gtk_window_set_default (GtkWindow *@var{window}, GtkWidget *@var{defaultw})
4341 @end deftypefun
4342
4343 @deftypefun void gtk_window_set_policy (GtkWindow *@var{window}, gint @var{allow_shrink}, gint @var{allow_grow}, gint @var{auto_shrink})
4344 @end deftypefun
4345
4346 @deftypefun void gtk_window_add_accelerator_table (GtkWindow *@var{window}, GtkAcceleratorTable *@var{table})
4347 @end deftypefun
4348
4349 @deftypefun void gtk_window_remove_accelerator_table (GtkWindow *@var{window}, GtkAcceleratorTable *@var{table})
4350 @end deftypefun
4351
4352 @deftypefun void gtk_window_position (GtkWindow *@var{window}, GtkWindowPosition @var{position})
4353 Set the position that the window will be at when it is finally drawn to the
4354 screen. The @var{position} argument effects the the position as described
4355 above.
4356 @end deftypefun
4357
4358 @gtkstdmacros{Window, WINDOW}
4359
4360
4361 @node Other Objects, Miscellaneous, Widgets, Top
4362 @comment node-name, next, previous, up
4363 @chapter Utility objects
4364
4365
4366 @menu
4367 * GtkAcceleratorTable::         The accelerator table object.
4368 * GtkAdjustment::               The adjustment object.
4369 * GtkGC::                       The GC object.
4370 * GtkData::                     The data object.
4371 * GtkStyle::                    The style object.
4372 @end menu
4373
4374
4375 @node GtkAcceleratorTable, GtkAdjustment, Other Objects, Other Objects
4376 @comment node-name, next, previous, up
4377 @section The accelerator table object
4378
4379 @subsection Description
4380
4381 @subsection Functions
4382
4383 @deftypefun GtkAcceleratorTable* gtk_accelerator_table_new (void)
4384 @end deftypefun
4385
4386 @deftypefun GtkAcceleratorTable* gtk_accelerator_table_find (GtkObject *@var{object}, gchar *@var{signal_name}, guchar @var{accelerator_key}, guint8 @var{accelerator_mods})
4387 @end deftypefun
4388
4389 @deftypefun GtkAccelerator *gtk_accelerator_table_ref (GtkAcceleratorTable *@var{table})
4390 @end deftypefun
4391
4392 @deftypefun void gtk_accelerator_table_unref (GtkAcceleratorTable *@var{table})
4393 @end deftypefun
4394
4395 @deftypefun void gtk_accelerator_table_install (GtkAcceleratorTable *@var{table}, GtkObject *@var{object}, gchar *@var{signal_name}, guchar @var{accelerator_key}, guint8 @var{accelerator_mods})
4396 @end deftypefun
4397
4398 @deftypefun void gtk_accelerator_table_remove (GtkAcceleratorTable *@var{table}, GtkObject *@var{object}, gchar *@var{signal_name})
4399 @end deftypefun
4400
4401 @deftypefun void gtk_accelerator_table_check (GtkAcceleratorTable *@var{table}, guchar @var{accelerator_key}, guint8 @var{accelerator_mods})
4402 @end deftypefun
4403
4404 @deftypefun void gtk_accelerator_table_set_mod_mask (GtkAcceleratorTable *@var{table}, guint8 @var{modifier_mask})
4405 @end deftypefun
4406
4407 @page
4408 @node GtkAdjustment, GtkGC, GtkAcceleratorTable, Other Objects
4409 @comment node-name, next, previous, up
4410 @section The adjustment object
4411
4412 @subsection Description
4413
4414 @subsection Functions
4415
4416 @deftypefun guint gtk_adjustment_get_type (void)
4417 Returns the @code{GtkAdjustment} type identifier.
4418 @end deftypefun
4419
4420 @deftypefun GtkObject* gtk_adjustment_new (gfloat @var{value}, gfloat @var{lower}, gfloat @var{upper}, gfloat @var{step_increment}, gfloat @var{page_increment}, gfloat @var{page_size})
4421 @end deftypefun
4422
4423 @gtkstdmacros{GtkAdjustment, ADJUSTMENT}
4424
4425 @page
4426 @node GtkGC, GtkData, GtkAdjustment, Other Objects
4427 @section The GC object
4428
4429 @subsection Description
4430
4431 @subsection Functions
4432
4433 @deftypefun GdkGC* gtk_gc_get (gint @var{depth}, GdkColormap *@var{colormap}, GdkGCValues *@var{values}, GdkGCValuesMask @var{values_mask})
4434 @end deftypefun
4435
4436 @deftypefun void gtk_gc_release (GdkGC *@var{gc})
4437 @end deftypefun
4438
4439 @page
4440 @node GtkData, GtkStyle, GtkGC, Other Objects
4441 @comment node-name, next, previous, up
4442 @section The data object
4443
4444 @subsection Description
4445
4446 @subsection Functions
4447
4448 @deftypefun guint gtk_data_get_type (void)
4449 Returns the @code{GtkData} type identifier.
4450 @end deftypefun
4451
4452 @gtkstdmacros{Data, DATA}
4453 @page
4454 @node GtkStyle, ,GtkData, Other Objects
4455 @section The style object
4456
4457 @subsection Description
4458
4459 @subsection Functions
4460
4461 @page
4462 @node Miscellaneous, Examples, Other Objects, Top
4463 @comment node-name, next, previous, up
4464 @chapter Initialization, exit and other features
4465
4466
4467 @menu
4468 * Initialization and exit::     Initializing and exiting GTK.
4469 * Customization::               Customizing the library.
4470 * Menu Factories::              Simplified menu creation.
4471 * Tree Factories::              Simplified tree creation.
4472 * Tool Tips::                   Pop up help mechanism.
4473 * Resource Files::              Resource files.
4474 * Standard Macros::             Macros defined by all objects.
4475 @end menu
4476
4477
4478 @node Initialization and exit, Customization, Miscellaneous, Miscellaneous
4479 @comment node-name, next, previous, up
4480 @section Initializing and exiting GTK
4481
4482 @subsection Initializing
4483 Before any GTK functions can be utilized the library must be initilized. This
4484 can be accomplished by calling the @code{gtk_init} function. The arguments
4485 you pass to this function should be the same arguments that were passed to
4486 your application. This function will parse the arguments that it understands
4487 and handle initilizing the GDK library for you.
4488
4489 @subsection Exiting
4490
4491 @subsection Functions
4492
4493 @deftypefun void gtk_init (int *@var{argc}, char **@var{argv})
4494 Function to initilize GTK and GDK for you. This function will remove any
4495 command line arguments from @var{argc} and @var{argv} that it understands.
4496
4497 @example
4498 int main (int argc, char *argv[])
4499 @{
4500    @dots{Any local variables or non GTK/GDK initilization}
4501
4502    gtk_init(&argc, &argc);
4503
4504 @}
4505 @end example
4506 @end deftypefun
4507
4508 @deftypefun void gtk_main (void)
4509 @end deftypefun
4510
4511 @page
4512 @node Customization, Menu Factories, Initialization and exit, Miscellaneous
4513 @comment node-name, next, previous, up
4514 @section Customization of the library
4515
4516 @subsection Description
4517 Like other X-windows applications the GTK library provides a way for the
4518 user and application programmer to change the colors of just about any widget. 
4519 You can also specify what pixmap should be tiled onto the background of some
4520 widgets. All this is handled through a similar method as in the standard 
4521 X-windows environment, through the use of 'rc' files. The format and 
4522 functions available in these files is discussed below.
4523
4524 @subsection Functions
4525 The following functions are available to handle the rc files.
4526
4527 @deftypefun void gtk_rc_parse (char *@var{filename})
4528 This function will parse the @var{filename} that is passed to it as its 
4529 argument. It will use the style settings for the widget types defined there.
4530 @end deftypefun
4531
4532 @deftypefun void gtk_rc_init (void)
4533 This function will initilize the rc file parser, normally this need not
4534 be called directly as the @code{gtk_init} function will handle this for
4535 you.
4536 @end deftypefun
4537
4538 @page
4539 @node Menu Factories, Tree Factories, Customization, Miscellaneous
4540 @comment node-name, next, previous, up
4541 @section Simplified menu creation
4542
4543 @page
4544 @node Tree Factories, Tool Tips, Menu Factories, Miscellaneous
4545 @comment node-name, next, previous, up
4546 @section Simplified tree creation
4547
4548 @page
4549 @node Tool Tips, Resource Files, Tree Factories, Miscellaneous
4550 @comment node-name, next, previous, up
4551 @section Pop up help mechanism
4552
4553 @subsection Description
4554
4555 @page
4556 @node Resource Files, Standard Macros, Tool Tips, Miscellaneous
4557 @comment node-name, next, previous, up
4558 @section Resource Files
4559
4560 @page
4561 @node Standard Macros, , Resource Files, Miscellaneous
4562 @comment node-name, next, previous, up
4563 @section Macros defined by all objects
4564
4565 There are three macros that are defined by all object types. The first
4566 two are used for performing casts and the last is for querying whether
4567 an object is of a particular type. These macros are both conveniences
4568 and debugging tools. If the GTK library was compiled with @code{NDEBUG}
4569 defined as a preprocessor symbol (via the -DNDEBUG to cc), then the
4570 macros check the object type and emit a warning if the cast is
4571 invalid. Doing such checking is fairly expensive since the cast macros
4572 are used everywhere in GTK and would normally be turned off in a public
4573 release of a product. Note: The functions below are indeed macros, but
4574 they may be considered functions for most purposes.
4575
4576 @deftypefun Gtk<ObjectType>* GTK_<OBJECT_TYPE> (gpointer @var{obj})
4577 Cast a generic pointer to @code{Gtk<ObjectType>*}. This function is
4578 provided in order to be able to provide checking during development
4579 stages of code development since it is possible to examine the actual
4580 type of object (using @code{gtk_type_is_a}) before performing the cast.
4581 @end deftypefun
4582
4583 @deftypefun Gtk<ObjectType>Class* GTK_<OBJECT_TYPE>_CLASS (gpointer @var{class})
4584 Cast a generic pointer to @code{Gtk<ObjectType>Class*}. Like
4585 @code{GTK_<ObjectType>}, this function is, in reality, a macro.
4586 @end deftypefun
4587
4588 @deftypefun gint GTK_IS_<ObjectType> (gpointer @var{obj})
4589 Determine if a generic pointer refers to a @code{Gtk<ObjectType>}
4590 object. This function is, in reality, a macro wrapper around the
4591 @code{gtk_type_is_a} function (@pxref{Objects}).
4592 @end deftypefun
4593
4594
4595 @node Examples, Object Implementation, Miscellaneous, Top
4596 @comment node-name, next, previous, up
4597 @chapter Using GTK
4598 @cindex Using GTK
4599
4600 @menu
4601 * Simple::                      The simplest GTK program.
4602 * Hello World::                 Hello world in GTK.
4603 * Hello World II::              An enhanced hello world.
4604 * Hello World III::             Making Hello World II robust.
4605 @end menu
4606
4607
4608 @node Simple, Hello World, Examples, Examples
4609 @comment node-name, next, previous, up
4610 @section The simplest GTK program
4611
4612
4613 The 16 line GTK program shown below is just about the simplest possible
4614 program which uses GTK. (Well, technically, you don't have to create the
4615 window and it would still be a program which uses GTK). The program,
4616 when compiled and run, will create a single window 200x200 pixels in
4617 size. The program does not exit until its is explicitly killed using the
4618 shell or a window manager function.
4619
4620 @example
4621 #include <gtk/gtk.h>
4622
4623 int
4624 main (int argc, char *argv[])
4625 @{
4626   GtkWidget *window;
4627
4628   gtk_init (&argc, &argv);
4629
4630   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
4631   gtk_widget_show (window);
4632
4633   gtk_main ();
4634
4635   return 0;
4636 @}
4637 @end example
4638
4639 The first point of interest in this program is the standard
4640 initialization line.
4641
4642 @example
4643   gtk_init (&argc, &argv);
4644 @end example
4645
4646 Almost every GTK program will contain such a line. GTK will initialize
4647 itself and GDK and remove any command line arguments it recognizes from
4648 @var{argc} and @var{argv}.
4649
4650 The next two lines of code create and display a window.
4651
4652 @example
4653   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
4654   gtk_widget_show (window);
4655 @end example
4656
4657 The @code{GTK_WINDOW_TOPLEVEL} argument specifies that we want the
4658 window to undergo window manager decoration and placement. One might be
4659 lead to think that the window, since it has no children, would be 0x0
4660 pixels in size. But, this is not the case because a window that has no
4661 children defaults to 200x200 pixels in size. Mainly because 0x0 windows
4662 are annoying to manipulate or even see in some cases.
4663
4664 The last line enters the GTK main processing loop.
4665
4666 @example
4667   gtk_main ();
4668 @end example
4669
4670 Normally, @code{gtk_main} is called once and the program should exit
4671 when it returns. @xref{Initialization and exit}.
4672
4673
4674 @node Hello World, Hello World II, Simple, Examples
4675 @comment node-name, next, previous, up
4676 @section Hello world in GTK
4677
4678
4679 @example
4680 #include <gtk/gtk.h>
4681
4682 int
4683 main (int argc, char *argv[])
4684 @{
4685   GtkWidget *window;
4686   GtkWidget *label;
4687
4688   gtk_init (&argc, &argv);
4689
4690   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
4691   gtk_container_border_width (GTK_CONTAINER (window), 10);
4692
4693   label = gtk_label_new ("Hello World");
4694   gtk_container_add (GTK_CONTAINER (window), label);
4695   gtk_widget_show (label);
4696
4697   gtk_widget_show (window);
4698
4699   gtk_main ();
4700
4701   return 0;
4702 @}
4703 @end example
4704
4705
4706 @node Hello World II, Hello World III, Hello World, Examples
4707 @comment node-name, next, previous, up
4708 @section An enhanced hello world
4709
4710
4711 @example
4712 #include "gtk.h"
4713
4714 void
4715 hello (void)
4716 @{
4717   g_print ("Hello World\n");
4718   gtk_exit (0);
4719 @}
4720
4721 int
4722 main (int argc, char *argv[])
4723 @{
4724   GtkWidget *window;
4725   GtkWidget *button;
4726
4727   gtk_init (&argc, &argv);
4728
4729   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
4730   gtk_container_border_width (GTK_CONTAINER (window), 10);
4731
4732   button = gtk_button_new_with_label ("Hello World");
4733   gtk_signal_connect (GTK_OBJECT (button), "clicked",
4734                       GTK_SIGNAL_FUNC (hello), NULL);
4735   gtk_container_add (GTK_CONTAINER (window), button);
4736   gtk_widget_show (button);
4737
4738   gtk_widget_show (window);
4739
4740   gtk_main ();
4741
4742   return 0;
4743 @}
4744 @end example
4745
4746
4747 @node Hello World III, , Hello World II, Examples
4748 @comment node-name, next, previous, up
4749 @section Making Hello World II robust
4750
4751
4752 @example
4753 #include "gtk.h"
4754
4755 void
4756 hello (void)
4757 @{
4758   g_print ("Hello World\n");
4759   gtk_exit (0);
4760 @}
4761
4762 void
4763 destroy (void)
4764 @{
4765   gtk_exit (0);
4766 @}
4767
4768 int
4769 main (int argc, char *argv[])
4770 @{
4771   GtkWidget *window;
4772   GtkWidget *button;
4773
4774   gtk_init (&argc, &argv);
4775
4776   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
4777   gtk_signal_connect (GTK_OBJECT (window), "destroy",
4778                       GTK_SIGNAL_FUNC (destroy), NULL);
4779   gtk_container_border_width (GTK_CONTAINER (window), 10);
4780
4781   button = gtk_button_new_with_label ("Hello World");
4782   gtk_signal_connect (GTK_OBJECT (button), "clicked",
4783                       GTK_SIGNAL_FUNC (hello), NULL);
4784   gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
4785                              GTK_SIGNAL_FUNC (gtk_widget_destroy),
4786                              GTK_OBJECT (window));
4787   gtk_container_add (GTK_CONTAINER (window), button);
4788   gtk_widget_show (button);
4789
4790   gtk_widget_show (window);
4791
4792   gtk_main ();
4793
4794   return 0;
4795 @}
4796 @end example
4797
4798
4799 @node Object Implementation, Signal Implementation, Examples, Top
4800 @comment node-name, next, previous, up
4801 @chapter Object internals
4802 @cindex Object Implementaton
4803
4804 Objects (or the @code{GtkObject} type) and the class hierarchy in
4805 general is implemented via a hierarchy of structs and type casting. Be
4806 aware that when classes are mentioned it is the conceptual idea of
4807 classes that is being referred to. GTK is written entirely in C which
4808 provides no direct support for classes.
4809
4810 The first part to the class mechanism is the object fields. These are
4811 fields that will be used on a per object basis. For example, the widget
4812 type contains a field for the widgets parent. Every derived type needs a
4813 reference to its parent type. A descendant class of @code{GtkObject}
4814 would define itself like:
4815
4816 @example
4817 struct Descendant
4818 @{
4819   GtkObject object;
4820
4821   @dots{}
4822 @};
4823 @end example
4824
4825 It is important to note that the @code{GtkObject} field needs to appear
4826 first in the descendant type structure. This allows pointers to objects
4827 of type @code{Descendant} to be cast to pointers to @code{GtkObjects}'s
4828 and vice-versa.
4829
4830 The second part to the class mechanism is the class fields. These fields
4831 are defined on a per class basis. In the case of widgets, the class
4832 fields are all the ``virtual'' functions for widgets. The
4833 @code{GtkObject} class defines the @code{destroy} virtual function and
4834 the necessary fields for the signal mechanism as well as a field for
4835 determining the runtime type of an object. A virtual function is
4836 semantically the same as it is in C++. That is, the actual function that
4837 is called is determined based on the type of the object. Or, more
4838 specifically, the actual function call depends on the class structure
4839 that is pointed to by the @code{klass} field of the @code{GtkObject}
4840 structure.
4841
4842 To see how the class fields work it is necessary to see the object
4843 fields for a @code{GtkObject}. The @code{GtkObject} type is defined as
4844 follows:
4845
4846 @example
4847 typedef struct _GtkObject GtkObject;
4848
4849 struct _GtkObject
4850 @{
4851   guint32 flags;
4852   GtkObjectClass *klass;
4853   gpointer object_data;
4854 @};
4855 @end example
4856
4857 The @code{class} field actually points to a class structure derived from
4858 @code{GtkObjectClass}. By convention, each new type defines its own
4859 class structure even if it is unnecessary. As an example, the
4860 hypothetical @code{Descendant} class would define its class structure
4861 as:
4862
4863 @example
4864 struct DescendantClass
4865 @{
4866   GtkObjectClass parent_class;
4867
4868   @dots{}
4869 @};
4870 @end example
4871
4872 It is convention to name the parent class field (@code{GtkObjectClass}
4873 in this case), @code{parent_class}. For the same reason as stated above
4874 for the object structure, the parent class field must be the first field
4875 in the class structure.
4876
4877 @strong{Note:} GTK assumes that the first field in a structure will be
4878 placed by the compiler at the start of the structure. This is certainly
4879 true for gcc, however, from my precursory reading of the C standard I
4880 was unable to come to a definite conclusion as to whether this was
4881 required or simply done for simplicity. I'm not too worried about this
4882 assumption, though, as every C compiler I've ever encountered would work
4883 with GTK.
4884
4885 The @code{flags} field of the @code{GtkObject} structure is used to keep
4886 track of a relatively few object flags and is also used by the
4887 @code{GtkWidget} type to store additional flags. At this time, the upper
4888 16 bits of the flags field are reserved but unused.
4889
4890 The @code{object_data} field of the @code{GtkObject} structure is an
4891 opaque pointer used by the object data mechanism. In truth, it is a
4892 pointer to the beginning of the data list which is composed of the
4893 following structures.
4894
4895 @example
4896 typedef struct _GtkObjectData GtkObjectData;
4897
4898 struct _GtkObjectData
4899 @{
4900   guint id;
4901   gpointer data;
4902   GtkObjectData *next;
4903 @};
4904 @end example
4905
4906 The data mechanism allows arbitrary data to be associated with a
4907 character string key in any object. A hash table is used to transform
4908 the character string key into the data id and then a search through the
4909 list is made to see if the data exists. The assumption being that the
4910 data list will usually be short and therefore a linear search is
4911 ok. Future work on the data mechanism might make use of a resizable
4912 array instead of a linked list. This would shrink the overhead of the
4913 @code{GtkObjectData} structure by 4 bytes on 32 bit architectures.
4914
4915
4916 @node Signal Implementation, Widget Implementation, Object Implementation, Top
4917 @comment node-name, next, previous, up
4918 @chapter Signal internals
4919 @cindex Signal Implementation
4920
4921
4922 @node Widget Implementation, Function Index, Signal Implementation, Top
4923 @comment node-name, next, previous, up
4924 @chapter Widget internals
4925 @cindex Widget Implementation
4926
4927
4928 @node Function Index, Concept Index, Widget Implementation, Top
4929 @comment node-name, next, previous, up
4930 @unnumbered Function Index
4931
4932 @printindex fn
4933
4934
4935 @node Concept Index, , Function Index, Top
4936 @comment node-name, next, previous, up
4937 @unnumbered Concept Index
4938
4939 @printindex cp
4940
4941
4942 @summarycontents
4943 @contents
4944 @bye