/* :APPEND-ITEMS Method */ LVAL xsappend_items(V) { LVAL menu, new_items; xlsave1(new_items); menu = xlgaobject(); new_items = makearglist(xlargc, xlargv); append_items(menu, new_items); xlpop(); return(NIL); }
/** * glade_editor_table_new: * @adaptor: A #GladeWidgetAdaptor * @type: The #GladeEditorPageType * * Creates a new #GladeEditorTable. * * Returns: a new #GladeEditorTable * */ GtkWidget * glade_editor_table_new (GladeWidgetAdaptor *adaptor, GladeEditorPageType type) { GladeEditorTable *table; g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL); table = g_object_new (GLADE_TYPE_EDITOR_TABLE, "page-type", type, NULL); table->priv->adaptor = adaptor; if (table->priv->type == GLADE_PAGE_GENERAL) append_name_field (table); append_items (table, table->priv->adaptor, table->priv->type); return (GtkWidget *)table; }
static void glade_editor_table_load (GladeEditable *editable, GladeWidget *widget) { GladeEditorTable *table = GLADE_EDITOR_TABLE (editable); GladeEditorProperty *property; GList *list; /* Setup the table the first time the widget is loaded */ if (widget && table->priv->adaptor == NULL) { table->priv->adaptor = glade_widget_get_adaptor (widget); if (table->priv->type == GLADE_PAGE_GENERAL) append_name_field (table); append_items (table, table->priv->adaptor, table->priv->type); } /* abort mission */ if (table->priv->loaded_widget == widget) return; if (table->priv->loaded_widget) { g_signal_handlers_disconnect_by_func (G_OBJECT (table->priv->loaded_widget), G_CALLBACK (widget_name_changed), table); g_signal_handlers_disconnect_by_func (G_OBJECT (table->priv->loaded_widget), G_CALLBACK (widget_composite_changed), table); /* The widget could die unexpectedly... */ g_object_weak_unref (G_OBJECT (table->priv->loaded_widget), (GWeakNotify) widget_finalized, table); } table->priv->loaded_widget = widget; BLOCK_NAME_ENTRY_CB (table); if (table->priv->loaded_widget) { g_signal_connect (G_OBJECT (table->priv->loaded_widget), "notify::name", G_CALLBACK (widget_name_changed), table); g_signal_connect (G_OBJECT (table->priv->loaded_widget), "notify::composite", G_CALLBACK (widget_composite_changed), table); /* The widget could die unexpectedly... */ g_object_weak_ref (G_OBJECT (table->priv->loaded_widget), (GWeakNotify) widget_finalized, table); if (table->priv->composite_check) { GObject *object = glade_widget_get_object (table->priv->loaded_widget); if (GTK_IS_WIDGET (object) && glade_widget_get_parent (table->priv->loaded_widget) == NULL) gtk_widget_show (table->priv->composite_check); else gtk_widget_hide (table->priv->composite_check); } if (table->priv->name_entry) gtk_entry_set_text (GTK_ENTRY (table->priv->name_entry), glade_widget_get_name (widget)); if (table->priv->name_label) widget_composite_changed (widget, NULL, table); } else if (table->priv->name_entry) gtk_entry_set_text (GTK_ENTRY (table->priv->name_entry), ""); UNBLOCK_NAME_ENTRY_CB (table); /* Sync up properties, even if widget is NULL */ for (list = table->priv->properties; list; list = list->next) { property = list->data; glade_editor_property_load_by_widget (property, widget); } }