Witam
Tworze gre nurikabe i mam problem ze zmianą wartości na tablicy (w tym przypadku tablicaG) i chcę aby po kliknięciu toggle button odpowiednia wartość się zmieniała ale nie wiem jak to zrobić. Poniżej zamieszczam część kodu. Dodam że tablicaG jest poprawnie wygenerowana.

void ClickPole( GtkWidget *widget,
gpointer data )
{
g_print ("Wybrano pole - %s was pressed\n", (char *) data);
}

/* Funkcje sprawdzaj¹ca poprawnoœæ ustawieñ*/
void ClickSpr( GtkWidget *widget,
gpointer data )
{
//tablica do przechowywania ustawień gracza
int tablicaG[10][10];

if(testKoncowy(tablicaG)==1)
    printf("poprawne rozwiazanie  \n\n");
else
    printf("zle rozwiazanie  \n\n");

}
/* This callback quits the program */
gint delete_event( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
gtk_main_quit ();
return(FALSE);
}

void togg(GtkWidget *widget, gpointer *data )
{
GdkColor color;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data)))
{
g_print("State is 11\n");
color.red=0;
color.green=0;
color.blue=0;
gtk_widget_modify_bg (GTK_WIDGET(widget), GTK_STATE_ACTIVE, &color);
gtk_widget_modify_bg (GTK_WIDGET(widget), GTK_STATE_PRELIGHT, &color);

}
else
{g_print("State is 22\n");
color.red=1111000;
color.green=1111000;
color.blue=1111000;
gtk_widget_modify_bg (GTK_WIDGET(widget), GTK_STATE_ACTIVE, &color);
gtk_widget_modify_bg (GTK_WIDGET(widget), GTK_STATE_PRELIGHT, &color);

}
}

int main( int argc,
char *argv[] )
{
//tablica do przechowania ustawień pól (moja)
int tablica[10][10];
//tablica do przechowywania ustawień gracza
int tablicaG[10][10];
//tablica struktur do przechowania wspólrzędnych
//cegieł muru
wsp tablicaM[64];
//wypełnienie tablicy tablicaM wartościami -1 (brak cegieł)
int i,j;
for (i=0;i<64;i++){
tablicaM[i].w = -1;
tablicaM[i].k = -1;
}
//wypełnienie części tablicy tablica
// 8x8 wartościami -1 (brak cegieł)
for (i=1;i<9;i++)
for (j=1;j<9;j++)
tablica[i][j] = -1;
//budowa "obramowania" wokół tablicy 8x8 i tablicyG
//można bez obramowania ale tak wygodniej
for (i=0;i<10;i++){
tablica[i][0] = -5;tablicaG[i][0] = -5;
tablica[i][9] = -5;tablicaG[i][9] = -5;
tablica[0][i] = -5;tablicaG[0][i] = -5;
tablica[9][i] = -5;tablicaG[9][i] = -5;
}

//uruchamiamy funkcję ustawiającą losowy mur
UstawMur(tablica,tablicaM);

//uruchamiam funkcję okreslającą powstałe jeziora
OznaczJeziora(tablica);

//przepisanie wylosowanych ustawień do tablicy gracza
for(i=1;i<9;i++)
for(j=1;j<9;j++){
//dzielenie całkowitoliczbowe dla <100 daje 0 (ukrywam pola jezior - oprócz jednego)
tablicaG[i][j]=tablica[i][j] / 100;
if(tablicaG[i][j]==0) //zamiana 0 na -1
tablicaG[i][j]=-1;
}
//test - tak wyglada tablicaG (gracza) po losowaniu
printf("TablicaG (dla gracza) po ustawieniu \n\n");
printf("liczby pokazuja ilosc 'cegiel' w jeziorze \n\n");
printf("ukryto pozostale ustawienia \n\n");
for(i=0;i<10;i++){
for(j=0;j<10;j++)
printf("%6d",tablicaG[i][j]);
printf("\n\n");
}
GtkWidget *window;
GtkWidget *button;
GtkWidget *table;
GtkWidget *napis;
gtk_init (&argc, &argv);

/* Utworzenie okna */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

/* Ustawienie tytu³u okna */
gtk_window_set_title (GTK_WINDOW (window), "Nurikabe");

/* Set a handler for delete_event that immediately
 * exits GTK. */
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
                    GTK_SIGNAL_FUNC (delete_event), NULL);

/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 20);

/* Utworzenie tabeli 9x8 */
table = gtk_table_new (9, 8, TRUE);
/* Wstawiamy tabelê do okna */
gtk_container_add (GTK_CONTAINER (window), table);
//wstawienie 64 przycisków
for(i=1;i<9;i++)
    for(j=1;j<9;j++)
        {

//wpisać funkcje przypisującą przyciski
button = gtk_toggle_button_new_with_label ("");
if (tablicaG[j][i]>0)
{
char buffor [4];
sprintf (buffor,"%d",tablicaG[j][i]);
gtk_button_set_label( button,buffor);
gtk_widget_set_sensitive(button, FALSE);
}
gtk_widget_set_size_request(button, 25, 25);
/* When the button is clicked, we call the "callback" function
* with a pointer to "button 1" as its argument */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (togg), (gpointer *)button);

/* Insert button  */
gtk_table_attach_defaults (GTK_TABLE(table), button, i-1, i, j-1, j);
gtk_widget_show (button);
    }

gtk_container_add (GTK_CONTAINER (window), button);//nie wiem

        /* Create "Test" button */
button = gtk_button_new_with_label ("Sprawdz");
/* When the button is clicked, we call the "delete_event" function
 * and the program exits */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
                    GTK_SIGNAL_FUNC (ClickSpr), "11");

/* Insert the quit button into the both
 * lower quadrants of the table */

gtk_table_attach_defaults (GTK_TABLE(table), button, 0, 4, 8, 9);
gtk_widget_show (button);
/* Create "Test" button /
button = gtk_button_new_with_label ("Koniec");
/
When the button is clicked, we call the "delete_event" function
* and the program exits */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (delete_event), NULL);

/* Insert the quit button into the both
 * lower quadrants of the table */

gtk_table_attach_defaults (GTK_TABLE(table), button, 4, 8, 8, 9);
gtk_widget_show (button);

gtk_widget_show (table);
gtk_widget_show (window);

gtk_main ();

return 0;

}