Привет всем. Тут такой вопрос нарисовался: можно ли каждому табу в GtkNotebook присвоить уникальный идентификатор, что бы потом можно было его считать каким-либо образом ? Или там оно уже есть ?
Да можно конечно, если нужно. Я почему-то подозреваю, что не нужно. В любом случае, к любому объекту в gtk можно присоединить произвольные данные с помощью g_object_set_data (object, data) и потом их получать g_object_get_data (object, data)
Хотя обычно сам объект может служить идентификатором, можно использовать и такие конструкции: g_object_set_data (tab_label, GPOINTER_TO_INT(number)) g_object_get_data (tab_label, GINT_TO_POINTER(number))
Сорри, конечно, немного не так: Да можно конечно, если нужно. Я почему-то подозреваю, что не нужно. В любом случае, к любому объекту в gtk можно присоединить произвольные данные с помощью
g_object_set_data (object, data)
и потом их получать
data = g_object_get_data (object)
Хотя обычно сам объект может служить идентификатором, можно использовать и такие конструкции:
g_free(buf);
g_free(child);
Объекты типа widget не нужно освобождать при помощи g_free, их, скорее всего совсем не нужно освобождать, так как в gtk действует система автоматического освобождения памяти, занятой виджетами. Нужно почитать про ref counting.
GtkWidget *buf = pack_label(nick,sticon);
Объявления давать нужно в начале блока, все-таки некрасиво получается, да и gcc старый будет ругаться.
g_free(&pagecount);
Ну а это вообще не в какие рамки С программирования не лезет. Зачем освобождать адрес статической переменной? Тем более, что память под нее не выделялась?
Просто я тута пытаюсь понять почему оно в Segmentation Fault вываливается, есть подозрение на то, что функция получения child или кол-ва страниц неправильно отрабатывают.
все g_free давно убрал, convo_find нужно, оно выполняет свою роль не только в этой функции. Я просто переделываю jons-gtk2-gui для licq. Там довольно специфичные фишки