GtkWidget * glade_tree_view_editor_new (GladeWidgetAdaptor * adaptor, GladeEditable * embed) { GladeTreeViewEditor *view_editor; GtkWidget *vbox, *separator; gchar *str; g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL); g_return_val_if_fail (GLADE_IS_EDITABLE (embed), NULL); view_editor = g_object_new (GLADE_TYPE_TREE_VIEW_EDITOR, NULL); view_editor->embed = GTK_WIDGET (embed); /* Pack the parent on the left... */ gtk_box_pack_start (GTK_BOX (view_editor), GTK_WIDGET (embed), TRUE, TRUE, 8); separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (view_editor), separator, FALSE, FALSE, 0); /* ...and the vbox with datastore/label on the right */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (view_editor), vbox, TRUE, TRUE, 8); str = g_strdup_printf ("<b>%s</b>", _("Choose a Data Model and define some\n" "columns in the data store first")); view_editor->no_model_message = gtk_label_new (str); gtk_label_set_use_markup (GTK_LABEL (view_editor->no_model_message), TRUE); gtk_label_set_justify (GTK_LABEL (view_editor->no_model_message), GTK_JUSTIFY_CENTER); g_free (str); gtk_box_pack_start (GTK_BOX (vbox), view_editor->no_model_message, TRUE, TRUE, 0); view_editor->embed_list_store = (GtkWidget *) glade_widget_adaptor_create_editable (glade_widget_adaptor_get_by_type (GTK_TYPE_LIST_STORE), GLADE_PAGE_GENERAL); glade_editable_set_show_name (GLADE_EDITABLE (view_editor->embed_list_store), FALSE); gtk_box_pack_start (GTK_BOX (vbox), view_editor->embed_list_store, TRUE, TRUE, 0); view_editor->embed_tree_store = (GtkWidget *) glade_widget_adaptor_create_editable (glade_widget_adaptor_get_by_type (GTK_TYPE_TREE_STORE), GLADE_PAGE_GENERAL); glade_editable_set_show_name (GLADE_EDITABLE (view_editor->embed_tree_store), FALSE); gtk_box_pack_start (GTK_BOX (vbox), view_editor->embed_tree_store, TRUE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET (view_editor)); return GTK_WIDGET (view_editor); }
static void glade_popup_docs_cb (GtkMenuItem *item, GladeWidgetAdaptor *adaptor) { g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor)); glade_app_search_docs (glade_widget_adaptor_get_book (adaptor), glade_widget_adaptor_get_name (adaptor), NULL); }
/** * 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; }
void glade_popup_property_pop (GladeProperty *property, GdkEventButton *event) { GladeWidgetAdaptor *adaptor, *prop_adaptor; GladePropertyClass *pclass; GParamSpec *pspec; GtkWidget *popup_menu; gint button; gint event_time; pclass = glade_property_get_class (property); pspec = glade_property_class_get_pspec (pclass); prop_adaptor = glade_property_class_get_adaptor (pclass); adaptor = glade_widget_adaptor_from_pspec (prop_adaptor, pspec); g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor)); popup_menu = gtk_menu_new (); glade_popup_append_item (popup_menu, _("Set default value"), TRUE, glade_popup_clear_property_cb, property); if (!glade_property_class_get_virtual (pclass) && glade_widget_adaptor_get_book (adaptor) && glade_util_have_devhelp ()) { glade_popup_append_item (popup_menu, _("Read _documentation"), TRUE, glade_popup_property_docs_cb, property); } if (event) { button = event->button; event_time = event->time; } else { button = 0; event_time = gtk_get_current_event_time (); } gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL, NULL, NULL, button, event_time); }
void glade_popup_palette_pop (GladePalette *palette, GladeWidgetAdaptor *adaptor, GdkEventButton *event) { GladeProject *project; GtkWidget *popup_menu; gint button; gint event_time; RootAddData *data; g_return_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor)); popup_menu = gtk_menu_new (); project = glade_palette_get_project (palette); data = g_new (RootAddData, 1); data->adaptor = adaptor; data->project = project; g_object_set_data_full (G_OBJECT (popup_menu), "root-data-destroy-me", data, (GDestroyNotify)g_free); glade_popup_append_item (popup_menu, _("Add widget as _toplevel"), TRUE, glade_popup_root_add_cb, data); if (glade_widget_adaptor_get_book (adaptor) && glade_util_have_devhelp ()) glade_popup_append_item (popup_menu, _("Read _documentation"), TRUE, glade_popup_docs_cb, adaptor); if (event) { button = event->button; event_time = event->time; } else { button = 0; event_time = gtk_get_current_event_time (); } gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL, NULL, NULL, button, event_time); }
GtkWidget * glade_tool_item_group_editor_new (GladeWidgetAdaptor *adaptor, GladeEditable *embed) { GladeToolItemGroupEditor *group_editor; GladeEditorProperty *eprop; GtkWidget *table, *frame, *label, *hbox; gchar *str; gint row = 0; g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL); g_return_val_if_fail (GLADE_IS_EDITABLE (embed), NULL); group_editor = g_object_new (GLADE_TYPE_TOOL_ITEM_GROUP_EDITOR, NULL); group_editor->embed = GTK_WIDGET (embed); /* Pack the parent on top... */ gtk_box_pack_start (GTK_BOX (group_editor), GTK_WIDGET (embed), FALSE, FALSE, 0); str = g_strdup_printf ("<b>%s</b>", _("Group Header")); label = gtk_label_new (str); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); g_free (str); frame = gtk_frame_new (NULL); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); gtk_box_pack_start (GTK_BOX (group_editor), frame, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_widget_set_margin_top (table, 6); gtk_widget_set_margin_start (table, 12); gtk_orientable_set_orientation (GTK_ORIENTABLE (table), GTK_ORIENTATION_VERTICAL); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_container_add (GTK_CONTAINER (frame), table); /* label */ eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "label", FALSE, TRUE); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); group_editor->label_radio = gtk_radio_button_new (NULL); gtk_box_pack_start (GTK_BOX (hbox), group_editor->label_radio, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (hbox), glade_editor_property_get_item_label (eprop), TRUE, TRUE, 2); table_attach (table, hbox, 0, row); table_attach (table, GTK_WIDGET (eprop), 1, row++); group_editor->properties = g_list_prepend (group_editor->properties, eprop); /* label-widget ... */ eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "label-widget", FALSE, TRUE); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); group_editor->label_widget_radio = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (group_editor->label_radio)); gtk_box_pack_start (GTK_BOX (hbox), group_editor->label_widget_radio, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (hbox), glade_editor_property_get_item_label (eprop), TRUE, TRUE, 2); table_attach (table, hbox, 0, row); table_attach (table, GTK_WIDGET (eprop), 1, row++); group_editor->properties = g_list_prepend (group_editor->properties, eprop); g_signal_connect (G_OBJECT (group_editor->label_widget_radio), "toggled", G_CALLBACK (label_widget_toggled), group_editor); g_signal_connect (G_OBJECT (group_editor->label_radio), "toggled", G_CALLBACK (label_toggled), group_editor); gtk_widget_show_all (GTK_WIDGET (group_editor)); return GTK_WIDGET (group_editor); }