gtkcontainer.h 3.48 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
/* GTK - The GIMP Toolkit
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * 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
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
#ifndef __GTK_CONTAINER_H__
#define __GTK_CONTAINER_H__


#include <gdk/gdk.h>
#include <gtk/gtkenums.h>
#include <gtk/gtkwidget.h>


#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


#define GTK_CONTAINER(obj)          GTK_CHECK_CAST (obj, gtk_container_get_type (), GtkContainer)
#define GTK_CONTAINER_CLASS(klass)  GTK_CHECK_CLASS_CAST (klass, gtk_container_get_type, GtkContainerClass)
#define GTK_IS_CONTAINER(obj)       GTK_CHECK_TYPE (obj, gtk_container_get_type ())

#define GTK_TYPE_CONTAINER          (gtk_container_get_type ())

typedef struct _GtkContainer       GtkContainer;
typedef struct _GtkContainerClass  GtkContainerClass;

struct _GtkContainer
{
  GtkWidget widget;

  GtkWidget *focus_child;
  gint16 border_width;
  guint auto_resize : 1;
  guint need_resize : 1;
  guint block_resize : 1;
50 51 52 53 54


  /* The list of children that requested a resize
   */
  GSList *resize_widgets;
Elliot Lee's avatar
Elliot Lee committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
};

struct _GtkContainerClass
{
  GtkWidgetClass parent_class;

  void (* add)         (GtkContainer     *container,
			GtkWidget        *widget);
  void (* remove)      (GtkContainer     *container,
			GtkWidget        *widget);
  gint (* need_resize) (GtkContainer     *container);
  void (* foreach)     (GtkContainer     *container,
			GtkCallback       callback,
			gpointer          callbabck_data);
  gint (* focus)       (GtkContainer     *container,
			GtkDirectionType  direction);
};



guint  gtk_container_get_type       (void);
void   gtk_container_border_width   (GtkContainer     *container,
				     gint              border_width);
void   gtk_container_add            (GtkContainer     *container,
				     GtkWidget        *widget);
void   gtk_container_remove         (GtkContainer     *container,
				     GtkWidget        *widget);
void   gtk_container_disable_resize (GtkContainer     *container);
void   gtk_container_enable_resize  (GtkContainer     *container);
void   gtk_container_block_resize   (GtkContainer     *container);
void   gtk_container_unblock_resize (GtkContainer     *container);
gint   gtk_container_need_resize    (GtkContainer     *container);
void   gtk_container_foreach        (GtkContainer     *container,
				     GtkCallback       callback,
				     gpointer          callback_data);
90 91 92 93
void   gtk_container_foreach_interp (GtkContainer     *container,
                                     GtkCallbackMarshal callback,
                                     gpointer          callback_data,
				     GtkDestroyNotify  notify);
Elliot Lee's avatar
Elliot Lee committed
94 95 96 97 98 99 100 101 102 103 104
gint   gtk_container_focus          (GtkContainer     *container,
				     GtkDirectionType  direction);
GList* gtk_container_children       (GtkContainer     *container);


#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /* __GTK_CONTAINER_H__ */