LINUX.ORG.RU

В с++ и gtk можно встроить функцию обратного вызова в вызываемую функцию функцией обратного вызова?

 ,


0

2

typedef void (*CallWhichButton) ( );

typedef void (*WhichButton)(GtkWidget * ,GdkEventButton * ,int );

void whichButton(GtkWidget *btn,GdkEventButton * event,int but) {

    but=event->button;


}

void callWhichButton (GtkWidget *but ) {

    g_signal_connect(GTK_BUTTON(but), "button-press-event", G_CALLBACK(whichButton), NULL);

}

extern «C» void whichMousButtons (GtkWidget *but ,int sig ) {

    []( CallWhichButton callWhichButton(GtkWidget  *  but),WhichButton whichButton(GtkWidget  *  but, GdkEventButton *  event, int  sig)){};



}

Код собирается , но не работает.

Ответ на: комментарий от UVV

Если так тогда окно и кнопка вообще не появляются.

g_signal_connect(GTK_BUTTON(but), «button-press-event», G_CALLBACK(whichMousButtons), NULL);

ivan132
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.