Пример #1
0
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;
}
Пример #2
0
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;
}