Code:
#include <gtk/gtk.h>
#include <time.h>
#include <stdlib.h>
GtkWidget *window=NULL,*button,*vbox1,*vbox2,*vbox3,*hbox;
Gtk Widget *hbox2,*label;
static int r,x;
void testnum(GtkWidget *fbutton2,gpointer fint2)
{
if((int)fint2==r)
g_print("You got it!\n");
else{
g_print("You didn't get it!\n");
}
}
void button_maker(GtkWidget *fbutton,GtkWidget *fbox,gpointer data,gpointer bnum
){
fbutton=gtk_button_new_with_label(data);
gtk_box_pack_start(GTK_BOX(fbox),fbutton,FALSE,FALSE,0);
gtk_signal_connect(GTK_OBJECT(fbutton),"clicked",
GTK_SIGNAL_FUNC(testnum),bnum);
gtk_widget_show(fbutton);
}
void randomizer(void){
char num[2]={0};
srand((unsigned)time(NULL));
r=rand();
r%=9;
r+=1;
num[0]=(char)(r+48);
num[2]='\0';
label=gtk_label_new(num);
hbox2=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(hbox2),label,TRUE,FALSE,2);
gtk_widget_show(label);
}
int main(int argc,char *argv[]){
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"Randomizer!");
gtk_container_set_border_width(GTK_CONTAINER(window),30);
gtk_signal_connect(GTK_OBJECT(window),"destroy",
GTK_SIGNAL_FUNC(gtk_exit),NULL);
hbox=gtk_hbox_new(FALSE,0);
vbox1=gtk_vbox_new(FALSE,0);
vbox2=gtk_vbox_new(FALSE,0);
vbox3=gtk_vbox_new(FALSE,0);
randomizer();
for(x=0;x<3;x++)
button_maker(button,vbox1,(char *)" X ",(gpointer)x);
for(;x<6;x++)
button_maker(button,vbox2,(char *)" X ",(gpointer)x);
for(;x<9;x++)
button_maker(button,vbox3,(char *)" X ",(gpointer)x);
gtk_box_pack_start(GTK_BOX(hbox),vbox1,TRUE,FALSE,0);
gtk_box_pack_start(GTK_BOX(hbox),vbox2,TRUE,FALSE,0);
gtk_box_pack_start(GTK_BOX(hbox),vbox3,TRUE,FALSE,0);
gtk_box_pack_start(GTK_BOX(hbox),hbox2,TRUE,FALSE,0);
gtk_container_add(GTK_CONTAINER(window),hbox);
gtk_widget_show(vbox1);
gtk_widget_show(vbox2);
gtk_widget_show(vbox3);
gtk_widget_show(hbox2);
gtk_widget_show(hbox);
gtk_widget_show(window);
gtk_main();
return 0;
}