‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

GTK+XML

Не понимаю, в чём шляпа. Пишу так:
glade_xml_signal_connect_data (xml, "on_label1_control_button_clicked", GTK_SIGNAL_FUNC(on_label1_control_button_clicked), pud1 );,

где xml это файл со структурой интерфейса (создан при помощи Glade), on_label1_control_button_clicked - это сигнал (и его одноимённый обработчик), а pud1 - указатель на пользовательскую (т.е. мою) структуру данных, передаваемых в обработчик. Унутре оной структуры - указатель на label внутри окна. То есть сначала загружается xml, из него извлекаются в числе прочих указатели на метки (по именам, при помощи glade_xml_get_widget), эти указатели сохраняются в соответствующих полях некоей структуры, на которую pud1 уже и указывает. Но когда по соответствующему событию вызывается обработчик, то вместо нужного указателя он получает ахинею.

Нет, я бы ещё понял, если бы я передавал указатель на локальную переменную, уже давно испарившуюся из стека - тогда читались бы совсем не те данные, но ведь даже САМ УКАЗАТЕЛЬ куда-то "теряется" по дороге: передаётся одно, а принимается совсем другое.

То есть, в библиотеке с обработчиками у меня есть такой, например:
void on_label1_control_button_clicked (GtkWidget *widget, gpointer user_data);

И вроде должно быть так, что передаваемый pud1 должен в итоге попасть в user_data, а дальше уже дело самого обработчика, как эти данные трактовать. Но - не фурычит. Мало того, я пробовал передавать просто константы -- с тем же результатом, принимается что-то совсем иное.

Нипанятно.
Subscribe

  • (no subject)

    <== С другой стороны, самих фактов было не очень-то много. Кроме того загадочного случая, Беркут не припоминал никаких подозрительных действий…

  • (no subject)

    <= - Когда я начинаю задумываться, то Казимирыч всегда говорит, что я лезу не в своё дело. Мы оперативники, грит, наше дело исполнять. Нам…

  • Китайцы строят что-то огромное.

    Замеченные американцем строения представляют собой несколько огромных сооружений. Длина большинства из них превышает сто метров, одна постройка…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 16 comments

  • (no subject)

    <== С другой стороны, самих фактов было не очень-то много. Кроме того загадочного случая, Беркут не припоминал никаких подозрительных действий…

  • (no subject)

    <= - Когда я начинаю задумываться, то Казимирыч всегда говорит, что я лезу не в своё дело. Мы оперативники, грит, наше дело исполнять. Нам…

  • Китайцы строят что-то огромное.

    Замеченные американцем строения представляют собой несколько огромных сооружений. Длина большинства из них превышает сто метров, одна постройка…