gtkwidget.h 45 KB
Newer Older
Cody Russell's avatar
Cody Russell committed
1
/* GTK - The GIMP Toolkit
Elliot Lee's avatar
Elliot Lee committed
2 3 4
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
 *
 * This library is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Lesser General Public
Elliot Lee's avatar
Elliot Lee committed
6 7 8 9 10
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
12
 * Lesser General Public License for more details.
Elliot Lee's avatar
Elliot Lee committed
13
 *
14
 * You should have received a copy of the GNU Lesser General Public
15 16 17
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
Elliot Lee's avatar
Elliot Lee committed
18
 */
19 20

/*
21
 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
22 23
 * file for a list of people on the GTK+ Team.  See the ChangeLog
 * files for a list of changes.  These files are distributed with
24
 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
25 26
 */

27
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
28 29 30
#error "Only <gtk/gtk.h> can be included directly."
#endif

Elliot Lee's avatar
Elliot Lee committed
31 32 33 34
#ifndef __GTK_WIDGET_H__
#define __GTK_WIDGET_H__

#include <gdk/gdk.h>
Tim Janik's avatar
Tim Janik committed
35
#include <gtk/gtkaccelgroup.h>
36
#include <gtk/gtkadjustment.h>
Elliot Lee's avatar
Elliot Lee committed
37
#include <gtk/gtkstyle.h>
Matthias Clasen's avatar
Matthias Clasen committed
38
#include <gtk/gtkborder.h>
39
#include <gtk/gtksettings.h>
40
#include <gtk/gtkstylecontext.h>
41
#include <gtk/gtkwidgetpath.h>
42
#include <atk/atk.h>
Elliot Lee's avatar
Elliot Lee committed
43

Matthias Clasen's avatar
Matthias Clasen committed
44
G_BEGIN_DECLS
45

46 47 48 49 50 51 52
/* Kinds of widget-specific help */
typedef enum
{
  GTK_WIDGET_HELP_TOOLTIP,
  GTK_WIDGET_HELP_WHATS_THIS
} GtkWidgetHelpType;

53 54
/* Macro for casting a pointer to a GtkWidget or GtkWidgetClass pointer.
 * Macros for testing whether `widget' or `klass' are of type GTK_TYPE_WIDGET.
Elliot Lee's avatar
Elliot Lee committed
55
 */
56
#define GTK_TYPE_WIDGET			  (gtk_widget_get_type ())
Manish Singh's avatar
Manish Singh committed
57 58 59 60 61
#define GTK_WIDGET(widget)		  (G_TYPE_CHECK_INSTANCE_CAST ((widget), GTK_TYPE_WIDGET, GtkWidget))
#define GTK_WIDGET_CLASS(klass)		  (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WIDGET, GtkWidgetClass))
#define GTK_IS_WIDGET(widget)		  (G_TYPE_CHECK_INSTANCE_TYPE ((widget), GTK_TYPE_WIDGET))
#define GTK_IS_WIDGET_CLASS(klass)	  (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WIDGET))
#define GTK_WIDGET_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WIDGET, GtkWidgetClass))
Elliot Lee's avatar
Elliot Lee committed
62

63
#define GTK_TYPE_REQUISITION              (gtk_requisition_get_type ())
64 65 66

/* forward declaration to avoid excessive includes (and concurrent includes)
 */
67 68 69 70 71 72 73 74 75
typedef struct _GtkRequisition	       GtkRequisition;
typedef struct _GtkSelectionData       GtkSelectionData;
typedef struct _GtkWidgetPrivate       GtkWidgetPrivate;
typedef struct _GtkWidgetClass	       GtkWidgetClass;
typedef struct _GtkWidgetClassPrivate  GtkWidgetClassPrivate;
typedef struct _GtkWidgetAuxInfo       GtkWidgetAuxInfo;
typedef struct _GtkClipboard	       GtkClipboard;
typedef struct _GtkTooltip             GtkTooltip;
typedef struct _GtkWindow              GtkWindow;
Elliot Lee's avatar
Elliot Lee committed
76

77

78 79 80 81 82 83 84
/**
 * GtkAllocation:
 * @x: the X position of the widget's area relative to its parents allocation.
 * @y: the Y position of the widget's area relative to its parents allocation.
 * @width: the width of the widget's allocated area.
 * @height: the height of the widget's allocated area.
 *
85 86 87 88
 * A <structname>GtkAllocation</structname> of a widget represents region
 * which has been allocated to the widget by its parent. It is a subregion
 * of its parents allocation. See <xref linkend="geometry-management"/> for
 * more information.
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
 */
typedef 	GdkRectangle	   GtkAllocation;

/**
 * GtkCallback:
 * @widget: the widget to operate on
 * @data: user-supplied data
 *
 * The type of the callback functions used for e.g. iterating over
 * the children of a container, see gtk_container_foreach().
 */
typedef void    (*GtkCallback)     (GtkWidget        *widget,
				    gpointer          data);

/**
 * GtkRequisition:
 * @width: the widget's desired width
 * @height: the widget's desired height
 *
 * A <structname>GtkRequisition</structname> represents the desired size of a widget. See
109
 * <xref linkend="geometry-management"/> for more information.
Elliot Lee's avatar
Elliot Lee committed
110 111 112
 */
struct _GtkRequisition
{
113 114
  gint width;
  gint height;
Elliot Lee's avatar
Elliot Lee committed
115 116 117 118 119 120 121 122 123
};

/* The widget is the base of the tree for displayable objects.
 *  (A displayable object is one which takes up some amount
 *  of screen real estate). It provides a common base and interface
 *  which actual widgets must adhere to.
 */
struct _GtkWidget
{
124
  GInitiallyUnowned parent_instance;
125

126
  GtkWidgetPrivate *priv;
Elliot Lee's avatar
Elliot Lee committed
127 128
};

129 130
/**
 * GtkWidgetClass:
131 132 133
 * @parent_class: The object class structure needs to be the first
 *   element in the widget class structure in order for the class mechanism
 *   to work correctly. This allows a GtkWidgetClass pointer to be cast to
134
 *   a GObjectClass pointer.
135 136 137
 * @activate_signal: The signal to emit when a widget of this class is
 *   activated, gtk_widget_activate() handles the emission.
 *   Implementation of this signal is optional.
138 139 140 141 142
 * @get_request_mode: This allows a widget to tell its parent container whether
 *   it prefers to be allocated in %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH or
 *   %GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT mode.
 *   %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH means the widget prefers to have
 *   #GtkWidgetClass.get_preferred_width() called and then
143 144 145 146 147 148 149 150 151
 *   #GtkWidgetClass.get_preferred_height_for_width().
 *   %GTK_SIZE_REQUEST_CONSTANT_SIZE disables any height-for-width or
 *   width-for-height geometry management for a said widget and is the
 *   default return.
 *   It's important to note (as described below) that any widget
 *   which trades height-for-width or width-for-height must respond properly 
 *   to both of the virtual methods #GtkWidgetClass.get_preferred_height_for_width()
 *   and #GtkWidgetClass.get_preferred_width_for_height() since it might be 
 *   queried in either #GtkSizeRequestMode by its parent container.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
 * @get_preferred_height: This is called by containers to obtain the minimum
 *   and natural height of a widget. A widget that does not actually trade
 *   any height for width or width for height only has to implement these
 *   two virtual methods (#GtkWidgetClass.get_preferred_width() and
 *   #GtkWidgetClass.get_preferred_height()).
 * @get_preferred_width_for_height: This is analogous to
 *   #GtkWidgetClass.get_preferred_height_for_width() except that it
 *   operates in the oposite orientation. It's rare that a widget actually
 *   does %GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT requests but this can happen
 *   when, for example, a widget or container gets additional columns to
 *   compensate for a smaller allocated height.
 * @get_preferred_width: This is called by containers to obtain the minimum
 *   and natural width of a widget. A widget will never be allocated a width
 *   less than its minimum and will only ever be allocated a width greater
 *   than the natural width once all of the said widget's siblings have
 *   received their natural widths.
 *   Furthermore, a widget will only ever be allocated a width greater than
 *   its natural width if it was configured to receive extra expand space
 *   from its parent container.
 * @get_preferred_height_for_width: This is similar to
 *   #GtkWidgetClass.get_preferred_height() except that it is passed a
 *   contextual width to request height for. By implementing this virtual
 *   method it is possible for a #GtkLabel to tell its parent how much height
 *   would be required if the label were to be allocated a said width.
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
 * @adjust_size_request: Convert an initial size request from a widget's
 *   #GtkSizeRequest virtual method implementations into a size request to
 *   be used by parent containers in laying out the widget.
 *   adjust_size_request adjusts <emphasis>from</emphasis> a child widget's
 *   original request <emphasis>to</emphasis> what a parent container should
 *   use for layout. The @for_size argument will be -1 if the request should
 *   not be for a particular size in the opposing orientation, i.e. if the
 *   request is not height-for-width or width-for-height. If @for_size is
 *   greater than -1, it is the proposed allocation in the opposing
 *   orientation that we need the request for. Implementations of
 *   adjust_size_request should chain up to the default implementation,
 *   which applies #GtkWidget's margin properties and imposes any values
 *   from gtk_widget_set_size_request(). Chaining up should be last,
 *   <emphasis>after</emphasis> your subclass adjusts the request, so
 *   #GtkWidget can apply constraints and add the margin properly.
 * @adjust_size_allocation: Convert an initial size allocation assigned
 *   by a #GtkContainer using gtk_widget_size_allocate(), into an actual
 *   size allocation to be used by the widget. adjust_size_allocation
 *   adjusts <emphasis>to</emphasis> a child widget's actual allocation
 *   <emphasis>from</emphasis> what a parent container computed for the
 *   child. The adjusted allocation must be entirely within the original
 *   allocation. In any custom implementation, chain up to the default
 *   #GtkWidget implementation of this method, which applies the margin
 *   and alignment properties of #GtkWidget. Chain up
 *   <emphasis>before</emphasis> performing your own adjustments so your
 *   own adjustments remove more allocation after the #GtkWidget base
202 203 204 205
 *   class has already removed margin and alignment. The natural size
 *   passed in should be adjusted in the same way as the allocated size,
 *   which allows adjustments to perform alignments or other changes
 *   based on natural size.
206
 */
Elliot Lee's avatar
Elliot Lee committed
207 208
struct _GtkWidgetClass
{
209
  GInitiallyUnownedClass parent_class;
210 211

  /*< public >*/
212

213
  guint activate_signal;
214

Tim Janik's avatar
Tim Janik committed
215 216 217 218 219
  /* seldomly overidden */
  void (*dispatch_child_properties_changed) (GtkWidget   *widget,
					     guint        n_pspecs,
					     GParamSpec **pspecs);

Elliot Lee's avatar
Elliot Lee committed
220
  /* basics */
221
  void (* destroy)             (GtkWidget        *widget);
222 223 224 225 226 227 228 229 230 231 232
  void (* show)		       (GtkWidget        *widget);
  void (* show_all)            (GtkWidget        *widget);
  void (* hide)		       (GtkWidget        *widget);
  void (* map)		       (GtkWidget        *widget);
  void (* unmap)	       (GtkWidget        *widget);
  void (* realize)	       (GtkWidget        *widget);
  void (* unrealize)	       (GtkWidget        *widget);
  void (* size_allocate)       (GtkWidget        *widget,
				GtkAllocation    *allocation);
  void (* state_changed)       (GtkWidget        *widget,
				GtkStateType   	  previous_state);
233 234
  void (* state_flags_changed) (GtkWidget        *widget,
				GtkStateFlags  	  previous_state_flags);
235 236
  void (* parent_set)	       (GtkWidget        *widget,
				GtkWidget        *previous_parent);
237 238
  void (* hierarchy_changed)   (GtkWidget        *widget,
				GtkWidget        *previous_toplevel);
239 240 241 242
  void (* style_set)	       (GtkWidget        *widget,
				GtkStyle         *previous_style);
  void (* direction_changed)   (GtkWidget        *widget,
				GtkTextDirection  previous_direction);
243 244
  void (* grab_notify)         (GtkWidget        *widget,
				gboolean          was_grabbed);
Tim Janik's avatar
Tim Janik committed
245 246
  void (* child_notify)        (GtkWidget	 *widget,
				GParamSpec       *pspec);
Benjamin Otte's avatar
Benjamin Otte committed
247 248
  gboolean (* draw)	       (GtkWidget	 *widget,
                                cairo_t          *cr);
249

250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
  /* size requests */
  GtkSizeRequestMode (* get_request_mode)               (GtkWidget      *widget);

  void               (* get_preferred_height)           (GtkWidget       *widget,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);
  void               (* get_preferred_width_for_height) (GtkWidget       *widget,
                                                         gint             height,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_width)            (GtkWidget       *widget,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_height_for_width) (GtkWidget       *widget,
                                                         gint             width,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);

268
  /* Mnemonics */
269 270 271
  gboolean (* mnemonic_activate)        (GtkWidget           *widget,
                                         gboolean             group_cycling);

272
  /* explicit focus */
273 274 275 276 277 278 279 280 281 282
  void     (* grab_focus)               (GtkWidget           *widget);
  gboolean (* focus)                    (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* keyboard navigation */
  void     (* move_focus)               (GtkWidget           *widget,
                                         GtkDirectionType     direction);
  gboolean (* keynav_failed)            (GtkWidget           *widget,
                                         GtkDirectionType     direction);

Elliot Lee's avatar
Elliot Lee committed
283
  /* events */
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
  gboolean (* event)			(GtkWidget	     *widget,
					 GdkEvent	     *event);
  gboolean (* button_press_event)	(GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* button_release_event)	(GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* scroll_event)		(GtkWidget           *widget,
					 GdkEventScroll      *event);
  gboolean (* motion_notify_event)	(GtkWidget	     *widget,
					 GdkEventMotion      *event);
  gboolean (* delete_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* destroy_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* key_press_event)		(GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* key_release_event)	(GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* enter_notify_event)	(GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* leave_notify_event)	(GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* configure_event)		(GtkWidget	     *widget,
					 GdkEventConfigure   *event);
  gboolean (* focus_in_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* focus_out_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* map_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* unmap_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* property_notify_event)	(GtkWidget	     *widget,
					 GdkEventProperty    *event);
  gboolean (* selection_clear_event)	(GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_request_event)	(GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_notify_event)	(GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* proximity_in_event)	(GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* proximity_out_event)	(GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* visibility_notify_event)	(GtkWidget	     *widget,
					 GdkEventVisibility  *event);
  gboolean (* window_state_event)	(GtkWidget	     *widget,
					 GdkEventWindowState *event);
332 333 334 335 336
  gboolean (* damage_event)             (GtkWidget           *widget,
                                         GdkEventExpose      *event);
  gboolean (* grab_broken_event)        (GtkWidget           *widget,
                                         GdkEventGrabBroken  *event);

Elliot Lee's avatar
Elliot Lee committed
337
  /* selection */
338
  void     (* selection_get)       (GtkWidget          *widget,
339 340
				    GtkSelectionData   *selection_data,
				    guint               info,
341
				    guint               time_);
342
  void     (* selection_received)  (GtkWidget          *widget,
343
				    GtkSelectionData   *selection_data,
344
				    guint               time_);
345 346

  /* Source side drag signals */
347
  void     (* drag_begin)          (GtkWidget         *widget,
348
				    GdkDragContext     *context);
349
  void     (* drag_end)	           (GtkWidget	       *widget,
350
				    GdkDragContext     *context);
351
  void     (* drag_data_get)       (GtkWidget          *widget,
352 353 354
				    GdkDragContext     *context,
				    GtkSelectionData   *selection_data,
				    guint               info,
355
				    guint               time_);
356
  void     (* drag_data_delete)    (GtkWidget          *widget,
357 358 359
				    GdkDragContext     *context);

  /* Target side drag signals */
360
  void     (* drag_leave)          (GtkWidget          *widget,
361
				    GdkDragContext     *context,
362
				    guint               time_);
363 364 365 366
  gboolean (* drag_motion)         (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
367
				    guint               time_);
368 369 370 371
  gboolean (* drag_drop)           (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
372
				    guint               time_);
373
  void     (* drag_data_received)  (GtkWidget          *widget,
374
				    GdkDragContext     *context,
375 376
				    gint                x,
				    gint                y,
377 378
				    GtkSelectionData   *selection_data,
				    guint               info,
379
				    guint               time_);
380 381 382
  gboolean (* drag_failed)         (GtkWidget          *widget,
                                    GdkDragContext     *context,
                                    GtkDragResult       result);
383 384

  /* Signals used only for keybindings */
385
  gboolean (* popup_menu)          (GtkWidget          *widget);
386 387 388 389 390 391

  /* If a widget has multiple tooltips/whatsthis, it should show the
   * one for the current focus location, or if that doesn't make
   * sense, should cycle through them showing each tip alongside
   * whatever piece of the widget it applies to.
   */
392
  gboolean (* show_help)           (GtkWidget          *widget,
393
                                    GtkWidgetHelpType   help_type);
394 395

  /* accessibility support
396
   */
397
  AtkObject *  (* get_accessible)     (GtkWidget *widget);
398

399 400 401 402
  void         (* screen_changed)     (GtkWidget *widget,
                                       GdkScreen *previous_screen);
  gboolean     (* can_activate_accel) (GtkWidget *widget,
                                       guint      signal_id);
403

404

405
  void         (* composited_changed) (GtkWidget *widget);
406

Kristian Rietveld's avatar
Kristian Rietveld committed
407 408 409 410 411
  gboolean     (* query_tooltip)      (GtkWidget  *widget,
				       gint        x,
				       gint        y,
				       gboolean    keyboard_tooltip,
				       GtkTooltip *tooltip);
412

413 414 415 416
  void         (* compute_expand)     (GtkWidget  *widget,
                                       gboolean   *hexpand_p,
                                       gboolean   *vexpand_p);

417 418 419 420 421
  void         (* adjust_size_request)    (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size);
  void         (* adjust_size_allocation) (GtkWidget         *widget,
422
                                           GtkOrientation     orientation,
423
                                           gint              *minimum_size,
424 425 426
                                           gint              *natural_size,
                                           gint              *allocated_pos,
                                           gint              *allocated_size);
427

428 429
  void         (* style_updated)          (GtkWidget *widget);

430 431
  /*< private >*/

432 433
  GtkWidgetClassPrivate *priv;

434
  /* Padding for future expansion */
435 436 437
  void (*_gtk_reserved2) (void);
  void (*_gtk_reserved3) (void);
  void (*_gtk_reserved4) (void);
438 439 440
  void (*_gtk_reserved5) (void);
  void (*_gtk_reserved6) (void);
  void (*_gtk_reserved7) (void);
441
  void (*_gtk_reserved8) (void);
Elliot Lee's avatar
Elliot Lee committed
442 443 444 445
};

struct _GtkWidgetAuxInfo
{
446 447
  gint width;
  gint height;
448

449 450
  guint   halign : 4;
  guint   valign : 4;
451 452

  GtkBorder margin;
Elliot Lee's avatar
Elliot Lee committed
453 454
};

Manish Singh's avatar
Manish Singh committed
455 456
GType	   gtk_widget_get_type		  (void) G_GNUC_CONST;
GtkWidget* gtk_widget_new		  (GType		type,
457
					   const gchar	       *first_property_name,
458
					   ...);
459 460 461
void	   gtk_widget_destroy		  (GtkWidget	       *widget);
void	   gtk_widget_destroyed		  (GtkWidget	       *widget,
					   GtkWidget	      **widget_pointer);
462
void	   gtk_widget_unparent		  (GtkWidget	       *widget);
463 464
void       gtk_widget_show                (GtkWidget           *widget);
void       gtk_widget_hide                (GtkWidget           *widget);
465
void       gtk_widget_show_now            (GtkWidget           *widget);
466
void       gtk_widget_show_all            (GtkWidget           *widget);
467
void       gtk_widget_set_no_show_all     (GtkWidget           *widget,
468
                                           gboolean             no_show_all);
469
gboolean   gtk_widget_get_no_show_all     (GtkWidget           *widget);
470 471 472 473
void	   gtk_widget_map		  (GtkWidget	       *widget);
void	   gtk_widget_unmap		  (GtkWidget	       *widget);
void	   gtk_widget_realize		  (GtkWidget	       *widget);
void	   gtk_widget_unrealize		  (GtkWidget	       *widget);
474

475 476
void       gtk_widget_draw                (GtkWidget           *widget,
                                           cairo_t             *cr);
477
/* Queuing draws */
478
void	   gtk_widget_queue_draw	  (GtkWidget	       *widget);
479 480 481 482 483
void	   gtk_widget_queue_draw_area	  (GtkWidget	       *widget,
					   gint                 x,
					   gint                 y,
					   gint                 width,
					   gint                 height);
484
void	   gtk_widget_queue_draw_region   (GtkWidget	       *widget,
485
                                           const cairo_region_t*region);
486
void	   gtk_widget_queue_resize	  (GtkWidget	       *widget);
Soeren Sandmann's avatar
Soeren Sandmann committed
487
void	   gtk_widget_queue_resize_no_redraw (GtkWidget *widget);
488
#ifndef GTK_DISABLE_DEPRECATED
489
void	   gtk_widget_size_request	  (GtkWidget	       *widget,
Elliot Lee's avatar
Elliot Lee committed
490
					   GtkRequisition      *requisition);
491
#endif
492
void	   gtk_widget_size_allocate	  (GtkWidget	       *widget,
Elliot Lee's avatar
Elliot Lee committed
493
					   GtkAllocation       *allocation);
494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513

GtkSizeRequestMode  gtk_widget_get_request_mode               (GtkWidget      *widget);
void                gtk_widget_get_preferred_width            (GtkWidget      *widget,
                                                               gint           *minimum_width,
                                                               gint           *natural_width);
void                gtk_widget_get_preferred_height_for_width (GtkWidget      *widget,
                                                               gint            width,
                                                               gint           *minimum_height,
                                                               gint           *natural_height);
void                gtk_widget_get_preferred_height           (GtkWidget      *widget,
                                                               gint           *minimum_height,
                                                               gint           *natural_height);
void                gtk_widget_get_preferred_width_for_height (GtkWidget      *widget,
                                                               gint            height,
                                                               gint           *minimum_width,
                                                               gint           *natural_width);
void                gtk_widget_get_preferred_size             (GtkWidget      *widget,
                                                               GtkRequisition *minimum_size,
                                                               GtkRequisition *natural_size);

514
#ifndef GTK_DISABLE_DEPRECATED
515 516
void       gtk_widget_get_child_requisition (GtkWidget	       *widget,
					     GtkRequisition    *requisition);
517
#endif
Tim Janik's avatar
Tim Janik committed
518 519 520 521
void	   gtk_widget_add_accelerator	  (GtkWidget           *widget,
					   const gchar         *accel_signal,
					   GtkAccelGroup       *accel_group,
					   guint                accel_key,
522
					   GdkModifierType      accel_mods,
Tim Janik's avatar
Tim Janik committed
523
					   GtkAccelFlags        accel_flags);
524
gboolean   gtk_widget_remove_accelerator  (GtkWidget           *widget,
Tim Janik's avatar
Tim Janik committed
525 526
					   GtkAccelGroup       *accel_group,
					   guint                accel_key,
527
					   GdkModifierType      accel_mods);
528
void       gtk_widget_set_accel_path      (GtkWidget           *widget,
529 530
					   const gchar         *accel_path,
					   GtkAccelGroup       *accel_group);
531
GList*     gtk_widget_list_accel_closures (GtkWidget	       *widget);
532 533
gboolean   gtk_widget_can_activate_accel  (GtkWidget           *widget,
                                           guint                signal_id);
534
gboolean   gtk_widget_mnemonic_activate   (GtkWidget           *widget,
535
					   gboolean             group_cycling);
536
gboolean   gtk_widget_event		  (GtkWidget	       *widget,
537
					   GdkEvent	       *event);
538 539
gint       gtk_widget_send_expose         (GtkWidget           *widget,
					   GdkEvent            *event);
540 541
gboolean   gtk_widget_send_focus_change   (GtkWidget           *widget,
                                           GdkEvent            *event);
542

543
gboolean   gtk_widget_activate		     (GtkWidget	       *widget);
544
     
545 546
void	   gtk_widget_reparent		  (GtkWidget	       *widget,
					   GtkWidget	       *new_parent);
547
gboolean   gtk_widget_intersect		  (GtkWidget	       *widget,
548
					   const GdkRectangle  *area,
549
					   GdkRectangle	       *intersection);
550 551
cairo_region_t *gtk_widget_region_intersect	  (GtkWidget	       *widget,
					   const cairo_region_t     *region);
552

Tim Janik's avatar
Tim Janik committed
553 554 555 556 557
void	gtk_widget_freeze_child_notify	  (GtkWidget	       *widget);
void	gtk_widget_child_notify		  (GtkWidget	       *widget,
					   const gchar	       *child_property);
void	gtk_widget_thaw_child_notify	  (GtkWidget	       *widget);

558 559 560
void       gtk_widget_set_can_focus       (GtkWidget           *widget,
                                           gboolean             can_focus);
gboolean   gtk_widget_get_can_focus       (GtkWidget           *widget);
561
gboolean   gtk_widget_has_focus           (GtkWidget           *widget);
562
gboolean   gtk_widget_is_focus            (GtkWidget           *widget);
563
gboolean   gtk_widget_has_visible_focus   (GtkWidget           *widget);
564 565 566 567 568 569 570
void       gtk_widget_grab_focus          (GtkWidget           *widget);

void       gtk_widget_set_can_default     (GtkWidget           *widget,
                                           gboolean             can_default);
gboolean   gtk_widget_get_can_default     (GtkWidget           *widget);
gboolean   gtk_widget_has_default         (GtkWidget           *widget);
void       gtk_widget_grab_default        (GtkWidget           *widget);
571

572 573 574 575
void      gtk_widget_set_receives_default (GtkWidget           *widget,
                                           gboolean             receives_default);
gboolean  gtk_widget_get_receives_default (GtkWidget           *widget);

576 577
gboolean   gtk_widget_has_grab            (GtkWidget           *widget);

578 579 580 581
gboolean   gtk_widget_device_is_shadowed  (GtkWidget           *widget,
                                           GdkDevice           *device);


582 583
void                  gtk_widget_set_name               (GtkWidget    *widget,
							 const gchar  *name);
584
const gchar *         gtk_widget_get_name               (GtkWidget    *widget);
585

586 587
void                  gtk_widget_set_state              (GtkWidget    *widget,
							 GtkStateType  state);
588
GtkStateType          gtk_widget_get_state              (GtkWidget    *widget);
589

590 591 592 593 594 595 596
void                  gtk_widget_set_state_flags        (GtkWidget     *widget,
                                                         GtkStateFlags  flags,
                                                         gboolean       clear);
void                  gtk_widget_unset_state_flags      (GtkWidget     *widget,
                                                         GtkStateFlags  flags);
GtkStateFlags         gtk_widget_get_state_flags        (GtkWidget     *widget);

597 598
void                  gtk_widget_set_sensitive          (GtkWidget    *widget,
							 gboolean      sensitive);
599 600 601
gboolean              gtk_widget_get_sensitive          (GtkWidget    *widget);
gboolean              gtk_widget_is_sensitive           (GtkWidget    *widget);

602 603 604 605
void                  gtk_widget_set_visible            (GtkWidget    *widget,
                                                         gboolean      visible);
gboolean              gtk_widget_get_visible            (GtkWidget    *widget);

606 607 608 609
void                  gtk_widget_set_has_window         (GtkWidget    *widget,
                                                         gboolean      has_window);
gboolean              gtk_widget_get_has_window         (GtkWidget    *widget);

610 611
gboolean              gtk_widget_is_toplevel            (GtkWidget    *widget);
gboolean              gtk_widget_is_drawable            (GtkWidget    *widget);
612 613 614 615 616 617 618
void                  gtk_widget_set_realized           (GtkWidget    *widget,
                                                         gboolean      realized);
gboolean              gtk_widget_get_realized           (GtkWidget    *widget);
void                  gtk_widget_set_mapped             (GtkWidget    *widget,
                                                         gboolean      mapped);
gboolean              gtk_widget_get_mapped             (GtkWidget    *widget);

619 620
void                  gtk_widget_set_app_paintable      (GtkWidget    *widget,
							 gboolean      app_paintable);
621 622
gboolean              gtk_widget_get_app_paintable      (GtkWidget    *widget);

623 624
void                  gtk_widget_set_double_buffered    (GtkWidget    *widget,
							 gboolean      double_buffered);
625 626
gboolean              gtk_widget_get_double_buffered    (GtkWidget    *widget);

627 628
void                  gtk_widget_set_redraw_on_allocate (GtkWidget    *widget,
							 gboolean      redraw_on_allocate);
629

630 631
void                  gtk_widget_set_parent             (GtkWidget    *widget,
							 GtkWidget    *parent);
632
GtkWidget           * gtk_widget_get_parent             (GtkWidget    *widget);
633

634 635
void                  gtk_widget_set_parent_window      (GtkWidget    *widget,
							 GdkWindow    *parent_window);
636
GdkWindow           * gtk_widget_get_parent_window      (GtkWidget    *widget);
637

638 639 640
void                  gtk_widget_set_child_visible      (GtkWidget    *widget,
							 gboolean      is_visible);
gboolean              gtk_widget_get_child_visible      (GtkWidget    *widget);
641 642 643 644

void                  gtk_widget_set_window             (GtkWidget    *widget,
                                                         GdkWindow    *window);
GdkWindow           * gtk_widget_get_window             (GtkWidget    *widget);
645

646 647 648
int                   gtk_widget_get_allocated_width    (GtkWidget     *widget);
int                   gtk_widget_get_allocated_height   (GtkWidget     *widget);

649 650
void                  gtk_widget_get_allocation         (GtkWidget     *widget,
                                                         GtkAllocation *allocation);
651 652
void                  gtk_widget_set_allocation         (GtkWidget     *widget,
                                                         const GtkAllocation *allocation);
653

654 655 656
void                  gtk_widget_get_requisition        (GtkWidget     *widget,
                                                         GtkRequisition *requisition);

657 658
gboolean   gtk_widget_child_focus         (GtkWidget           *widget,
                                           GtkDirectionType     direction);
659 660 661
gboolean   gtk_widget_keynav_failed       (GtkWidget           *widget,
                                           GtkDirectionType     direction);
void       gtk_widget_error_bell          (GtkWidget           *widget);
Havoc Pennington's avatar
Havoc Pennington committed
662 663 664 665 666 667 668

void       gtk_widget_set_size_request    (GtkWidget           *widget,
                                           gint                 width,
                                           gint                 height);
void       gtk_widget_get_size_request    (GtkWidget           *widget,
                                           gint                *width,
                                           gint                *height);
669 670
void	   gtk_widget_set_events	  (GtkWidget	       *widget,
					   gint			events);
671 672
void       gtk_widget_add_events          (GtkWidget           *widget,
					   gint	                events);
673 674 675 676 677 678
void	   gtk_widget_set_device_events	  (GtkWidget	       *widget,
                                           GdkDevice           *device,
					   GdkEventMask		events);
void       gtk_widget_add_device_events   (GtkWidget           *widget,
                                           GdkDevice           *device,
					   GdkEventMask         events);
679 680 681 682 683 684 685

void       gtk_widget_set_device_enabled  (GtkWidget    *widget,
                                           GdkDevice    *device,
                                           gboolean      enabled);
gboolean   gtk_widget_get_device_enabled  (GtkWidget    *widget,
                                           GdkDevice    *device);

686 687
GtkWidget*   gtk_widget_get_toplevel	(GtkWidget	*widget);
GtkWidget*   gtk_widget_get_ancestor	(GtkWidget	*widget,
Manish Singh's avatar
Manish Singh committed
688
					 GType		 widget_type);
689
GdkVisual*   gtk_widget_get_visual	(GtkWidget	*widget);
690 691
void         gtk_widget_set_visual	(GtkWidget	*widget,
                                         GdkVisual      *visual);
692

693 694 695 696 697 698 699
GdkScreen *   gtk_widget_get_screen      (GtkWidget *widget);
gboolean      gtk_widget_has_screen      (GtkWidget *widget);
GdkDisplay *  gtk_widget_get_display     (GtkWidget *widget);
GdkWindow *   gtk_widget_get_root_window (GtkWidget *widget);
GtkSettings*  gtk_widget_get_settings    (GtkWidget *widget);
GtkClipboard *gtk_widget_get_clipboard   (GtkWidget *widget,
					  GdkAtom    selection);
700

701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719

/* Expand flags and related support */
gboolean gtk_widget_get_hexpand          (GtkWidget      *widget);
void     gtk_widget_set_hexpand          (GtkWidget      *widget,
                                          gboolean        expand);
gboolean gtk_widget_get_hexpand_set      (GtkWidget      *widget);
void     gtk_widget_set_hexpand_set      (GtkWidget      *widget,
                                          gboolean        set);
gboolean gtk_widget_get_vexpand          (GtkWidget      *widget);
void     gtk_widget_set_vexpand          (GtkWidget      *widget,
                                          gboolean        expand);
gboolean gtk_widget_get_vexpand_set      (GtkWidget      *widget);
void     gtk_widget_set_vexpand_set      (GtkWidget      *widget,
                                          gboolean        set);
void     gtk_widget_queue_compute_expand (GtkWidget      *widget);
gboolean gtk_widget_compute_expand       (GtkWidget      *widget,
                                          GtkOrientation  orientation);


720 721 722 723 724
/* Multidevice support */
gboolean         gtk_widget_get_support_multidevice (GtkWidget      *widget);
void             gtk_widget_set_support_multidevice (GtkWidget      *widget,
                                                     gboolean        support_multidevice);

725
/* Accessibility support */
726 727
void             gtk_widget_class_set_accessible_type    (GtkWidgetClass     *widget_class,
                                                          GType               type);
728 729
void             gtk_widget_class_set_accessible_role    (GtkWidgetClass     *widget_class,
                                                          AtkRole             role);
730 731
AtkObject*       gtk_widget_get_accessible               (GtkWidget          *widget);

732 733

/* Margin and alignment */
734 735
GtkAlign gtk_widget_get_halign        (GtkWidget *widget);
void     gtk_widget_set_halign        (GtkWidget *widget,
736
                                       GtkAlign   align);
737 738
GtkAlign gtk_widget_get_valign        (GtkWidget *widget);
void     gtk_widget_set_valign        (GtkWidget *widget,
739
                                       GtkAlign   align);
740
gint     gtk_widget_get_margin_left   (GtkWidget *widget);
741
void     gtk_widget_set_margin_left   (GtkWidget *widget,
742 743
                                       gint       margin);
gint     gtk_widget_get_margin_right  (GtkWidget *widget);
744
void     gtk_widget_set_margin_right  (GtkWidget *widget,
745 746
                                       gint       margin);
gint     gtk_widget_get_margin_top    (GtkWidget *widget);
747
void     gtk_widget_set_margin_top    (GtkWidget *widget,
748 749
                                       gint       margin);
gint     gtk_widget_get_margin_bottom (GtkWidget *widget);
750
void     gtk_widget_set_margin_bottom (GtkWidget *widget,
751
                                       gint       margin);
752 753


754
gint	     gtk_widget_get_events	(GtkWidget	*widget);
755 756
GdkEventMask gtk_widget_get_device_events (GtkWidget	*widget,
                                           GdkDevice    *device);
757 758 759 760
void	     gtk_widget_get_pointer	(GtkWidget	*widget,
					 gint		*x,
					 gint		*y);

761
gboolean     gtk_widget_is_ancestor	(GtkWidget	*widget,
762 763
					 GtkWidget	*ancestor);

764 765 766 767 768 769 770
gboolean     gtk_widget_translate_coordinates (GtkWidget  *src_widget,
					       GtkWidget  *dest_widget,
					       gint        src_x,
					       gint        src_y,
					       gint       *dest_x,
					       gint       *dest_y);

771 772
/* Hide widget and return TRUE.
 */
773
gboolean     gtk_widget_hide_on_delete	(GtkWidget	*widget);
774

775 776 777 778 779 780 781 782
/* Functions to override widget styling */
void         gtk_widget_override_color            (GtkWidget     *widget,
                                                   GtkStateFlags  state,
                                                   const GdkRGBA *color);
void         gtk_widget_override_background_color (GtkWidget     *widget,
                                                   GtkStateFlags  state,
                                                   const GdkRGBA *color);

Matthias Clasen's avatar
Matthias Clasen committed
783 784
void         gtk_widget_override_font             (GtkWidget                  *widget,
                                                   const PangoFontDescription *font_desc);
785

Matthias Clasen's avatar
Matthias Clasen committed
786 787 788
void         gtk_widget_override_symbolic_color   (GtkWidget     *widget,
                                                   const gchar   *name,
                                                   const GdkRGBA *color);
789
void         gtk_widget_override_cursor           (GtkWidget       *widget,
790 791
                                                   const GdkRGBA   *cursor,
                                                   const GdkRGBA   *secondary_cursor);
792

793 794
void       gtk_widget_reset_style       (GtkWidget      *widget);

795
#if !defined(GTK_DISABLE_DEPRECATED) || defined(GTK_COMPILATION)
796

Matthias Clasen's avatar
Matthias Clasen committed
797
void        gtk_widget_style_attach               (GtkWidget     *widget);
798

799 800
/* Widget styles.
 */
801 802 803 804 805
gboolean    gtk_widget_has_rc_style       (GtkWidget            *widget);
void	    gtk_widget_set_style          (GtkWidget            *widget,
                                           GtkStyle             *style);
void        gtk_widget_ensure_style       (GtkWidget            *widget);
GtkStyle *  gtk_widget_get_style          (GtkWidget            *widget);
806

807 808 809 810 811
void        gtk_widget_modify_style       (GtkWidget            *widget,
					   GtkRcStyle           *style);
GtkRcStyle *gtk_widget_get_modifier_style (GtkWidget            *widget);
void        gtk_widget_modify_fg          (GtkWidget            *widget,
					   GtkStateType          state,
812
					   const GdkColor       *color);
813 814
void        gtk_widget_modify_bg          (GtkWidget            *widget,
					   GtkStateType          state,
815
					   const GdkColor       *color);
816 817
void        gtk_widget_modify_text        (GtkWidget            *widget,
					   GtkStateType          state,
818
					   const GdkColor       *color);
819 820
void        gtk_widget_modify_base        (GtkWidget            *widget,
					   GtkStateType          state,
821
					   const GdkColor       *color);
822 823 824
void        gtk_widget_modify_cursor      (GtkWidget            *widget,
					   const GdkColor       *primary,
					   const GdkColor       *secondary);
825 826
void        gtk_widget_modify_font        (GtkWidget            *widget,
					   PangoFontDescription *font_desc);
827

828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845
/* Descend recursively and set rc-style on all widgets without user styles */
void       gtk_widget_reset_rc_styles   (GtkWidget      *widget);

/* Set certain default values to be used at widget creation time  */
GtkStyle*    gtk_widget_get_default_style    (void);

/* Compute a widget's path in the form "GtkWindow.MyLabel", and
 * return newly alocated strings.
 */
void	     gtk_widget_path		   (GtkWidget *widget,
					    guint     *path_length,
					    gchar    **path,
					    gchar    **path_reversed);
void	     gtk_widget_class_path	   (GtkWidget *widget,
					    guint     *path_length,
					    gchar    **path,
					    gchar    **path_reversed);

846 847 848 849
GdkPixbuf    *gtk_widget_render_icon          (GtkWidget   *widget,
                                               const gchar *stock_id,
                                               GtkIconSize  size,
                                               const gchar *detail);
850 851
#endif  /* GTK_DISABLE_DEPRECATED */

852 853 854 855
PangoContext *gtk_widget_create_pango_context (GtkWidget   *widget);
PangoContext *gtk_widget_get_pango_context    (GtkWidget   *widget);
PangoLayout  *gtk_widget_create_pango_layout  (GtkWidget   *widget,
					       const gchar *text);
856

857
GdkPixbuf    *gtk_widget_render_icon_pixbuf   (GtkWidget   *widget,
858
                                               const gchar *stock_id,
859
                                               GtkIconSize  size);
860

861 862 863 864
/* handle composite names for GTK_COMPOSITE_CHILD widgets,
 * the returned name is newly allocated.
 */
void   gtk_widget_set_composite_name	(GtkWidget	*widget,
Owen Taylor's avatar
Owen Taylor committed
865
					 const gchar   	*name);
866 867
gchar* gtk_widget_get_composite_name	(GtkWidget	*widget);
     
868 869 870 871
/* Push/pop pairs, to change default values upon a widget's creation.
 * This will override the values that got set by the
 * gtk_widget_set_default_* () functions.
 */
872 873
void	     gtk_widget_push_composite_child (void);
void	     gtk_widget_pop_composite_child  (void);
Elliot Lee's avatar
Elliot Lee committed
874

875 876
/* widget style properties
 */
Tim Janik's avatar
Tim Janik committed
877
void gtk_widget_class_install_style_property        (GtkWidgetClass     *klass,
878
						     GParamSpec         *pspec);
Tim Janik's avatar
Tim Janik committed
879
void gtk_widget_class_install_style_property_parser (GtkWidgetClass     *klass,
880 881
						     GParamSpec         *pspec,
						     GtkRcPropertyParser parser);
882 883 884 885
GParamSpec*  gtk_widget_class_find_style_property   (GtkWidgetClass     *klass,
						     const gchar        *property_name);
GParamSpec** gtk_widget_class_list_style_properties (GtkWidgetClass     *klass,
						     guint              *n_properties);
886 887 888 889 890 891 892 893
void gtk_widget_style_get_property (GtkWidget	     *widget,
				    const gchar    *property_name,
				    GValue	     *value);
void gtk_widget_style_get_valist   (GtkWidget	     *widget,
				    const gchar    *first_property_name,
				    va_list         var_args);
void gtk_widget_style_get          (GtkWidget	     *widget,
				    const gchar    *first_property_name,
894
				    ...) G_GNUC_NULL_TERMINATED;
895

896
/* Functions for setting directionality for widgets */
897 898 899 900 901 902 903 904

void             gtk_widget_set_direction         (GtkWidget        *widget,
						   GtkTextDirection  dir);
GtkTextDirection gtk_widget_get_direction         (GtkWidget        *widget);

void             gtk_widget_set_default_direction (GtkTextDirection  dir);
GtkTextDirection gtk_widget_get_default_direction (void);

905 906 907
/* Compositing manager functionality */
gboolean gtk_widget_is_composited (GtkWidget *widget);

908
/* Counterpart to gdk_window_shape_combine_region.
Elliot Lee's avatar
Elliot Lee committed
909
 */
910 911 912 913
void	     gtk_widget_shape_combine_region (GtkWidget *widget,
                                              cairo_region_t *region);
void	     gtk_widget_input_shape_combine_region (GtkWidget *widget,
                                                    cairo_region_t *region);
Elliot Lee's avatar
Elliot Lee committed
914

915
GList* gtk_widget_list_mnemonic_labels  (GtkWidget *widget);
916 917 918 919 920
void   gtk_widget_add_mnemonic_label    (GtkWidget *widget,
					 GtkWidget *label);
void   gtk_widget_remove_mnemonic_label (GtkWidget *widget,
					 GtkWidget *label);

921 922 923 924 925 926 927 928 929 930
void                  gtk_widget_set_tooltip_window    (GtkWidget   *widget,
                                                        GtkWindow   *custom_window);
GtkWindow *gtk_widget_get_tooltip_window    (GtkWidget   *widget);
void       gtk_widget_trigger_tooltip_query (GtkWidget   *widget);
void       gtk_widget_set_tooltip_text      (GtkWidget   *widget,
                                             const gchar *text);
gchar *    gtk_widget_get_tooltip_text      (GtkWidget   *widget);
void       gtk_widget_set_tooltip_markup    (GtkWidget   *widget,
                                             const gchar *markup);
gchar *    gtk_widget_get_tooltip_markup    (GtkWidget   *widget);
931 932 933
void       gtk_widget_set_has_tooltip       (GtkWidget   *widget,
					     gboolean     has_tooltip);
gboolean   gtk_widget_get_has_tooltip       (GtkWidget   *widget);
Kristian Rietveld's avatar
Kristian Rietveld committed
934

Benjamin Otte's avatar
Benjamin Otte committed
935 936
gboolean   gtk_cairo_should_draw_window     (cairo_t     *cr,
                                             GdkWindow   *window);
937 938 939
void       gtk_cairo_transform_to_window    (cairo_t     *cr,
                                             GtkWidget   *widget,
                                             GdkWindow   *window);
Benjamin Otte's avatar
Benjamin Otte committed
940

Matthias Clasen's avatar
Matthias Clasen committed
941
GType           gtk_requisition_get_type (void) G_GNUC_CONST;
942
GtkRequisition *gtk_requisition_new      (void) G_GNUC_MALLOC;
943 944
GtkRequisition *gtk_requisition_copy     (const GtkRequisition *requisition);
void            gtk_requisition_free     (GtkRequisition       *requisition);
945

946 947
gboolean     gtk_widget_in_destruction (GtkWidget *widget);

948 949
GtkStyleContext * gtk_widget_get_style_context (GtkWidget *widget);

950 951
GtkWidgetPath *   gtk_widget_get_path (GtkWidget *widget);

952

Matthias Clasen's avatar
Matthias Clasen committed
953
G_END_DECLS
Elliot Lee's avatar
Elliot Lee committed
954 955

#endif /* __GTK_WIDGET_H__ */