Codice: Seleziona tutto
#include <gtk/gtk.h>
#include <stdio.h>
static void check( GtkWidget *widget, gpointer data){
GdkColor color;
/*
* char a[2];
* data
* */
/*
* char test[2] = (char) data;
* printf("x: %d y: %s", (int) test[0], (char) data[1]);
* */
printf("button - %s was pressed\n", (char *) data);
/*
* int i = (int) data[0];
* int a = (int) data[1];
* */
gdk_color_parse( "#0080FF", &color );
gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color);
gtk_widget_modify_bg(widget, GTK_STATE_SELECTED, &color);
}
static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ){
g_print("delete_event\n");
gtk_main_quit ();
return FALSE;
}
int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *button1;
GtkWidget *buttons[5][5];
GtkWidget *vbox1;
GtkWidget *table;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "MineField");
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (delete_event), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
gtk_widget_show (window);
vbox1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox1);
table = gtk_table_new(5,5, 1);
int i = 0;
int a = 0;
for(i = 0; i < 5; i++)
for(a = 0; a < 5; a++){
button1 = gtk_button_new_with_label(" ");
buttons[i][a] = button1;
char c[10];
sprintf(c, "%d%d", i, a);
g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (check), (gpointer) c);
gtk_table_attach((GtkTable *) table, button1, i, i+1, a, a+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
}
gtk_box_pack_start (GTK_BOX(vbox1), table, TRUE, TRUE, 0);
gtk_widget_show_all(window);
gtk_main ();
return 0;
}
Se qualcuno più esperto mi può aiutare!
Grazie