nodeT *createTreeFromList(nodeL *p){ nodeT *root; root=createTreeList(p->character); if(strcmp(p->character,"*")!=0){ root->left=createTreeFromList(p->next); root->right=createTreeFromList(p->next); } return root; }
void makeGUI() { GtkWidget *seperator; GtkWidget* vertbox; /** * Create the window and the main containter for all the widgets (topbox) **/ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(window), 5); topbox = gtk_vbox_new(FALSE, 0); /* * Build the left side of the panel first */ image = gtk_image_new(); gtk_widget_set_size_request(image, 320, 240); horbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(topbox), horbox, TRUE, TRUE, 0); vertbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(horbox), vertbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vertbox), image, TRUE, FALSE, 0); gtk_widget_show(vertbox); gtk_widget_show(image); if (options) { GtkWidget* frame; frame = gtk_frame_new("Wallpaper Settings"); optionBox = gtk_combo_box_new_text (); gtk_combo_box_append_text (GTK_COMBO_BOX (optionBox), "Scale To Fit"); gtk_combo_box_append_text (GTK_COMBO_BOX (optionBox), "Center"); gtk_combo_box_append_text (GTK_COMBO_BOX (optionBox), "Tile"); gtk_combo_box_set_active (GTK_COMBO_BOX (optionBox), 0); g_signal_connect (G_OBJECT (GTK_COMBO_BOX (optionBox)), "changed", G_CALLBACK (setOption), NULL); gtk_widget_show(optionBox); gtk_container_set_border_width (GTK_CONTAINER (frame), 2); gtk_container_add (GTK_CONTAINER (frame), optionBox); gtk_widget_show(frame); gtk_box_pack_start(GTK_BOX(vertbox), frame, TRUE, TRUE, 0); seperator = gtk_hseparator_new(); gtk_widget_show(seperator); } /** * Seperate the two sides, just for fun **/ seperator = gtk_vseparator_new(); gtk_widget_show(seperator); gtk_box_pack_start(GTK_BOX(horbox), seperator, TRUE, TRUE, 2); /** * Now make the right side of the panel. * This is where the list of wallpapers go (selectbox) * It is embed in a scrollable area, so the window isn't * twenty meters long **/ scrollable = gtk_scrolled_window_new (NULL, NULL); createTreeList(); gtk_widget_set_size_request(scrollable, 250, 240); gtk_container_add(GTK_CONTAINER(scrollable), selectBox); gtk_box_pack_start(GTK_BOX(horbox), scrollable, TRUE, TRUE, 0); gtk_widget_show(selectBox); gtk_widget_show(scrollable); gtk_widget_show(horbox); /* * Foo! */ horbox = gtk_hbox_new(TRUE, 0); seperator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(topbox), seperator, TRUE, TRUE, 2); gtk_widget_show(seperator); gtk_box_pack_start(GTK_BOX(topbox), horbox, FALSE, TRUE, 2); button = gtk_button_new_from_stock("gtk-apply"); gtk_box_pack_start(GTK_BOX(horbox), button, FALSE, TRUE, 10); gtk_widget_show(button); gtk_widget_show(horbox); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(setWallpaper), "2"); button = gtk_button_new_from_stock("gtk-cancel"); gtk_box_pack_end(GTK_BOX(horbox), button, FALSE, TRUE, 10); gtk_widget_show(button); g_signal_connect_swapped (G_OBJECT (button), "clicked", G_CALLBACK (delete_event), G_OBJECT (window)); gtk_container_add(GTK_CONTAINER(window), topbox); gtk_widget_show(topbox); gtk_window_set_title (GTK_WINDOW (window), "CWallpaper Setter"); gtk_widget_show(window); gtk_widget_grab_focus(GTK_WIDGET(selectBox)); buildList(); return; }