summaryrefslogtreecommitdiff
path: root/tools/glade/glade/glade_widget_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/glade/glade/glade_widget_data.h')
-rw-r--r--tools/glade/glade/glade_widget_data.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/tools/glade/glade/glade_widget_data.h b/tools/glade/glade/glade_widget_data.h
new file mode 100644
index 00000000..51210da7
--- /dev/null
+++ b/tools/glade/glade/glade_widget_data.h
@@ -0,0 +1,145 @@
+/* Gtk+ User Interface Builder
+ * Copyright (C) 1998-2000 Damon Chaplin
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+#ifndef GLADE_WIDGET_DATA_H
+#define GLADE_WIDGET_DATA_H
+
+/*
+ * Defines the extra data that Glade keeps for each widget, and functions to
+ * manipulate it.
+ */
+
+#include <time.h>
+#include <atk/atkobject.h>
+#include <atk/atkrelation.h>
+#include "glade.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/* Flags in GladeWidgetData */
+enum
+{
+ GLADE_VISIBLE = 1 << 0, /* If the widget is initially visible */
+ GLADE_SENSITIVE = 1 << 1, /* If the widget is initially sensitive */
+ GLADE_GRAB_DEFAULT = 1 << 2, /* If it grabs the default */
+ GLADE_GRAB_FOCUS = 1 << 3, /* If it grabs the focus */
+ GLADE_STYLE_IS_UNNAMED = 1 << 4, /* If it's using its own unnamed style */
+ GLADE_STYLE_PROPAGATE = 1 << 5, /* If it propgates style to children */
+ GLADE_ACTIVE = 1 << 6, /* If it is initially active (toggles) */
+ GLADE_WIDTH_SET = 1 << 7, /* If the width is set explicitly */
+ GLADE_HEIGHT_SET = 1 << 8, /* If the height is set explicitly */
+
+ GLADE_SIZE_NOT_ALLOCATED = 1 << 9 /* Internally used so that a widget's size
+ and position properties aren't
+ displayed until its area has been
+ allocated. */
+};
+
+typedef struct _GladeWidgetData GladeWidgetData;
+struct _GladeWidgetData
+{
+ guint16 flags;
+ gint16 width;
+ gint16 height;
+ gint events;
+ gchar *tooltip;
+ GList *signals; /* A list of GladeSignal*. */
+ GList *accelerators; /* A list of GladeAccelerator*. */
+ GList *relations; /* A list of GladeRelation*. */
+#ifdef GLADE_STYLE_SUPPORT
+ GbStyle *gbstyle;
+#endif
+
+ /* C options (currently not used). */
+ gchar *source_file;
+ guint public_field : 1;
+
+ /* C++ options. */
+ guint cxx_separate_file : 1;
+ guint cxx_separate_class : 1;
+ guint cxx_visibility : 2; /* 0=private 1=protected 2=public */
+
+ GbWidget *gbwidget;
+};
+
+typedef struct _GladeSignal GladeSignal;
+struct _GladeSignal
+{
+ gchar *name;
+ gchar *handler;
+ gchar *object;
+ gboolean after;
+ gchar *data;
+ /* This records the last time that handler, object or data were changed,
+ since we have to change the prototype output when they change.
+ name can't be changed, or it would become a completely different signal */
+ time_t last_modification_time;
+};
+
+typedef struct _GladeAccelerator GladeAccelerator;
+struct _GladeAccelerator
+{
+ GdkModifierType modifiers;
+ gchar *key;
+ gchar *signal;
+};
+
+typedef struct _GladeRelation GladeRelation;
+struct _GladeRelation
+{
+ AtkRelationType relationship;
+ /* A list of GtkWidget*, with weak pointers to the widgets, so if the
+ widget gets destroyed the pointer is set to NULL. */
+ GList *targets;
+};
+
+
+GladeWidgetData* glade_widget_data_new (GbWidget *gbwidget);
+GladeWidgetData* glade_widget_data_copy (GladeWidgetData *wdata);
+
+void glade_widget_data_free (GladeWidgetData *wdata);
+
+void glade_widget_data_clear_accels (GladeWidgetData *wdata);
+void glade_widget_data_set_accels (GladeWidgetData *wdata,
+ GList *accels);
+void glade_widget_data_free_accel (GladeAccelerator *accel);
+
+void glade_widget_data_clear_signals (GladeWidgetData *wdata);
+void glade_widget_data_set_signals (GladeWidgetData *wdata,
+ GList *signals);
+void glade_widget_data_free_signal (GladeSignal *signal);
+
+void glade_widget_data_clear_relations(GladeWidgetData *wdata);
+void glade_widget_data_set_relations (GladeWidgetData *wdata,
+ GList *relations);
+void glade_widget_data_set_relation (GladeWidgetData *wdata,
+ AtkRelationType relationship,
+ GList *targets);
+void glade_widget_data_add_relation (GladeWidgetData *wdata,
+ AtkRelationType relationship,
+ GtkWidget *target);
+void glade_widget_data_free_relation (GladeRelation *relation);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* GLADE_WIDGET_DATA_H */