static GtkWidget * create_content (GtkWindow *window, gboolean local) { GtkWidget *vbox; GtkWidget *button; GtkWidget *frame; frame = gtk_frame_new (local? "Local" : "Remote"); gtk_container_set_border_width (GTK_CONTAINER (frame), 3); vbox = gtk_vbox_new (TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 3); gtk_container_add (GTK_CONTAINER (frame), vbox); /* Combo */ gtk_box_pack_start (GTK_BOX (vbox), create_combo(), TRUE, TRUE, 0); /* Entry */ gtk_box_pack_start (GTK_BOX (vbox), gtk_entry_new(), TRUE, TRUE, 0); /* Close Button */ button = gtk_button_new_with_mnemonic ("_Close"); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); /* Blink Button */ button = gtk_button_new_with_mnemonic ("_Blink"); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); g_signal_connect (button, "clicked", G_CALLBACK (blink), window); /* Menubar */ gtk_box_pack_start (GTK_BOX (vbox), create_menubar (GTK_WINDOW (window)), TRUE, TRUE, 0); /* Combo Box */ gtk_box_pack_start (GTK_BOX (vbox), create_combo_box (), TRUE, TRUE, 0); add_buttons (NULL, vbox); return frame; }
int main (int argc, char **argv) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *scrolled_window; GtkWidget *hbox; GtkWidget *button_vbox; GtkWidget *combo_vbox; GtkWidget *button; GtkWidget *menu_combo; GtkWidget *alignment; GtkWidget *label; GtkWidget *list_combo; test_init (); gtk_init (&argc, &argv); model = gtk_list_store_new (1, G_TYPE_STRING); contents = g_array_new (FALSE, FALSE, sizeof (char)); dialog = gtk_dialog_new_with_buttons ("GtkComboBox model changes", NULL, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (hbox), 12); gtk_box_pack_start (GTK_BOX (content_area), hbox, TRUE, TRUE, 0); combo_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_box_pack_start (GTK_BOX (hbox), combo_vbox, FALSE, FALSE, 0); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<b>Menu mode</b>"); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (combo_vbox), label, FALSE, FALSE, 0); alignment = g_object_new (GTK_TYPE_ALIGNMENT, "left-padding", 12, NULL); gtk_box_pack_start (GTK_BOX (combo_vbox), alignment, FALSE, FALSE, 0); menu_combo = create_combo ("menu-combo", FALSE); gtk_container_add (GTK_CONTAINER (alignment), menu_combo); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<b>List mode</b>"); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (combo_vbox), label, FALSE, FALSE, 0); alignment = g_object_new (GTK_TYPE_ALIGNMENT, "left-padding", 12, NULL); gtk_box_pack_start (GTK_BOX (combo_vbox), alignment, FALSE, FALSE, 0); list_combo = create_combo ("list-combo", TRUE); gtk_container_add (GTK_CONTAINER (alignment), list_combo); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); text_view = gtk_text_view_new (); gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE); gtk_container_add (GTK_CONTAINER (scrolled_window), text_view); button_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_box_pack_start (GTK_BOX (hbox), button_vbox, FALSE, FALSE, 0); gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 300); button = align_button_new ("Insert"); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (on_insert), NULL); button = align_button_new ("Delete"); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (on_delete), NULL); button = align_button_new ("Reorder"); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (on_reorder), NULL); button = align_button_new ("Animate"); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (on_animate), NULL); gtk_widget_show_all (dialog); gtk_dialog_run (GTK_DIALOG (dialog)); return 0; }