#include #include #include void destroy(GtkWidget *widget, gpointer data){ gtk_main_quit(); } void click(GtkWidget *widget, GdkEventButton *data, gpointer *po); int main( int argc, char *argv[] ) { GtkWidget *window,*text[10],*box,*button[10],*box1,*box2,*box3,*box4,*sep; int t,padding=0,space=0; char name[15],no,isim[10][15]={"Expand FALSE","Fill FALSE","Padding 10","Homojen FALSE","Spacing 0","Expand TRUE","Fill TRUE","Padding 0","Homojen TRUE","Spacing 10"}, labelisim[6][15]={"expand = ","fill = ","padding = ","homojen = ","spacing = "}; gboolean expand=0,fill=0,homogen=0; void click(GtkWidget *widget, GdkEventButton *data, gpointer *po){ if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button5")) expand=1; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button0")) expand=0; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button6")) fill=1; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button1")) fill=0; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button7")) padding=0; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button2")) padding=10; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button8")) homogen=1; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button3")) homogen=0; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button9")) space=10; else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(po)),"button4")) space=0; else g_print("ALOO"); gtk_box_set_homogeneous(GTK_BOX(box3),homogen); gtk_box_set_spacing(GTK_BOX(box3),space); gtk_box_set_homogeneous(GTK_BOX(box4),homogen); gtk_box_set_spacing(GTK_BOX(box4),space); for(t=4;t<5;t++){ gtk_box_set_child_packing (GTK_BOX(box3),text[t],expand,fill,padding,GTK_PACK_START); gtk_box_set_child_packing (GTK_BOX(box4),button[t],expand,fill,padding,GTK_PACK_START); } strcpy(name,labelisim[4]); if(space==0) strcat(name,"0"); else strcat(name,"10"); gtk_label_set_text(GTK_LABEL(text[4]),name); strcpy(name,labelisim[0]); t=strlen(name); name[t]=expand+48; name[t+1]=0; gtk_label_set_text(GTK_LABEL(text[0]),name); strcpy(name,labelisim[1]); t=strlen(name); name[t]=fill+48; name[t+1]=0; gtk_label_set_text(GTK_LABEL(text[1]),name); strcpy(name,labelisim[2]); if(padding==0) strcat(name,"0"); else strcat(name,"10"); gtk_label_set_text(GTK_LABEL(text[2]),name); strcpy(name,labelisim[3]); t=strlen(name); name[t]=homogen+48; name[t+1]=0; gtk_label_set_text(GTK_LABEL(text[3]),name); } gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title((GtkWindow *)window,"Żlk Program"); gtk_widget_set_usize(window,700,200); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_signal_connect_object(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(destroy),NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 10); box1=gtk_hbox_new(TRUE,0); box=gtk_hbox_new(TRUE,0); box2=gtk_vbox_new(FALSE,0); box3=gtk_hbox_new(homogen,space); box4=gtk_hbox_new(homogen,space); sep=gtk_hseparator_new(); for(t=0;t<5;t++){ strcpy(name,"label"); name[6]=t+48; name[7]='\0'; text[t]=gtk_label_new(labelisim[t]); gtk_label_set_justify(GTK_LABEL(text[t]),GTK_JUSTIFY_FILL); gtk_box_pack_start(GTK_BOX(box3),text[t],expand,fill,space); gtk_widget_show(text[t]); } gtk_box_pack_start(GTK_BOX(box2),box3,FALSE,FALSE,0); gtk_widget_show(box3); for(t=0;t<10;t++){ strcpy(name,"button"); name[6]=t+48; name[7]='\0'; button[t]=gtk_button_new_with_label(isim[t]); gtk_widget_set_name(GTK_WIDGET(button[t]),name); gtk_widget_set_usize(button[t],100,20); gtk_signal_connect_object(GTK_OBJECT(button[t]),"button_release_event",GTK_SIGNAL_FUNC(click),(gpointer)box3); if(t>4) gtk_box_pack_start(GTK_BOX(box1),button[t],FALSE,FALSE,0); else gtk_box_pack_start(GTK_BOX(box),button[t],FALSE,FALSE,0); gtk_widget_show(button[t]); } for(t=0;t<5;t++){ button[t]=gtk_button_new_with_label("button"); gtk_box_pack_start(GTK_BOX(box4),button[t],expand,fill,space); gtk_widget_show(button[t]); } gtk_box_pack_start (GTK_BOX (box2), box4,FALSE,FALSE,0); gtk_widget_show(box4); gtk_box_pack_start(GTK_BOX(box2), sep,FALSE,FALSE,10); gtk_widget_show(sep); gtk_box_pack_start (GTK_BOX (box2), box1,FALSE,FALSE,0); gtk_widget_show(box1); gtk_box_pack_start (GTK_BOX (box2), box,FALSE,FALSE,0); gtk_widget_show(box); gtk_container_add (GTK_CONTAINER (window), box2); gtk_widget_show(box2); gtk_widget_show (window); gtk_main (); return(0); }